You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by bh...@apache.org on 2019/09/27 08:03:33 UTC
[incubator-dlab] branch DLAB-terraform updated: DLAB-000 added
authentication for guacamole
This is an automated email from the ASF dual-hosted git repository.
bhliva pushed a commit to branch DLAB-terraform
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
The following commit(s) were added to refs/heads/DLAB-terraform by this push:
new 40ee170 DLAB-000 added authentication for guacamole
40ee170 is described below
commit 40ee17091be82125b4274207901625ea59d7f71e
Author: bhliva <bo...@epam.com>
AuthorDate: Fri Sep 27 11:03:22 2019 +0300
DLAB-000 added authentication for guacamole
---
.../servlet/guacamole/GuacamoleSecurityFilter.java | 35 ++++++++++++----------
1 file changed, 20 insertions(+), 15 deletions(-)
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/servlet/guacamole/GuacamoleSecurityFilter.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/servlet/guacamole/GuacamoleSecurityFilter.java
index e5b0cc2..fad87c1 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/servlet/guacamole/GuacamoleSecurityFilter.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/servlet/guacamole/GuacamoleSecurityFilter.java
@@ -1,18 +1,27 @@
package com.epam.dlab.backendapi.servlet.guacamole;
+import com.epam.dlab.auth.UserInfo;
+import com.epam.dlab.auth.UserInfoDAO;
import com.google.inject.Inject;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
import javax.servlet.*;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.ws.rs.core.HttpHeaders;
import java.io.IOException;
+import java.util.Optional;
@Slf4j
public class GuacamoleSecurityFilter implements Filter {
private static final String AUTH_HEADER_PREFIX = "Bearer ";
- @Inject
- public GuacamoleSecurityFilter() {
+ private final UserInfoDAO userInfoDAO;
+ @Inject
+ public GuacamoleSecurityFilter(UserInfoDAO userInfoDAO) {
+ this.userInfoDAO = userInfoDAO;
}
@Override
@@ -22,21 +31,17 @@ public class GuacamoleSecurityFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
- /*HttpServletRequest request = (HttpServletRequest) servletRequest;
+ HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
final String authorization = request.getHeader(HttpHeaders.AUTHORIZATION);
- try {
- final String credentials = StringUtils.substringAfter(authorization, AUTH_HEADER_PREFIX);
- final Optional<UserInfo> user = authenticator.authenticate(credentials);
- if (user.isPresent()) {
- request.setAttribute(GuacamoleServlet.USER_ATTRIBUTE, user.get());
- filterChain.doFilter(servletRequest, servletResponse);
- } else {
- response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
- }
- } catch (AuthenticationException e) {
- log.error("Authentication error occurred: {}", e.getMessage());
- }*/
+ final String credentials = StringUtils.substringAfter(authorization, AUTH_HEADER_PREFIX);
+ final Optional<UserInfo> user = userInfoDAO.getUserInfoByAccessToken(credentials);
+ if (user.isPresent()) {
+ request.setAttribute(GuacamoleServlet.USER_ATTRIBUTE, user.get());
+ filterChain.doFilter(servletRequest, servletResponse);
+ } else {
+ response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
+ }
filterChain.doFilter(servletRequest, servletResponse);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org