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