private SubjectCreator getSubjectCreator(HttpServletRequest request) { final Port<?> port = HttpManagementUtil.getPort(request); return port.getSubjectCreator(request.isSecure(), request.getServerName()); }
private Subject createSubject(final AuthenticationResult authenticationResult) { SubjectCreator subjectCreator = port.getSubjectCreator(request.isSecure(), request.getServerName()); SubjectAuthenticationResult result = subjectCreator.createResultWithGroups(authenticationResult); Subject original = result.getSubject(); if (original == null) { throw new SecurityException("Only authenticated users can access the management interface"); } Subject subject = HttpManagementUtil.createServletConnectionSubject(request, original); return subject; }
@Override public Subject attemptAuthentication(final HttpServletRequest request, final HttpManagementConfiguration configuration) { final Port<?> port = configuration.getPort(request); final AuthenticationProvider<?> authenticationProvider = configuration.getAuthenticationProvider(request); String authorizationHeader = request.getHeader("Authorization"); String accessToken = null; if (authorizationHeader != null && authorizationHeader.startsWith(BEARER_PREFIX)) { accessToken = authorizationHeader.substring(BEARER_PREFIX.length()); } if (accessToken != null && authenticationProvider instanceof OAuth2AuthenticationProvider) { OAuth2AuthenticationProvider<?> oAuth2AuthProvider = (OAuth2AuthenticationProvider<?>) authenticationProvider; AuthenticationResult authenticationResult = oAuth2AuthProvider.authenticateViaAccessToken(accessToken, null); SubjectCreator subjectCreator = port.getSubjectCreator(request.isSecure(), request.getServerName()); SubjectAuthenticationResult result = subjectCreator.createResultWithGroups(authenticationResult); return result.getSubject(); } return null; }
@Override public Subject attemptAuthentication(final HttpServletRequest request, final HttpManagementConfiguration managementConfig) { final Port<?> port = managementConfig.getPort(request); final AuthenticationProvider authenticationProvider = managementConfig.getAuthenticationProvider(request); SubjectCreator subjectCreator = port.getSubjectCreator(request.isSecure(), request.getServerName()); if(authenticationProvider instanceof AnonymousAuthenticationManager) { return subjectCreator.createResultWithGroups(((AnonymousAuthenticationManager) authenticationProvider).getAnonymousAuthenticationResult()).getSubject(); } return null; }
@Override public Subject attemptAuthentication(final HttpServletRequest request, final HttpManagementConfiguration managementConfig) { final AuthenticationProvider authenticationProvider = managementConfig.getAuthenticationProvider(request); final Port<?> port = managementConfig.getPort(request); SubjectCreator subjectCreator = port.getSubjectCreator(request.isSecure(), request.getServerName()); if(request.isSecure() && authenticationProvider instanceof ExternalAuthenticationManager && Collections.list(request.getAttributeNames()).contains(CERTIFICATE_ATTRIBUTE_NAME)) { ExternalAuthenticationManager<?> externalAuthManager = (ExternalAuthenticationManager<?>)authenticationProvider; X509Certificate[] certificates = (X509Certificate[]) request.getAttribute(CERTIFICATE_ATTRIBUTE_NAME); if(certificates != null && certificates.length != 0) { Principal principal = certificates[0].getSubjectX500Principal(); if(!externalAuthManager.getUseFullDN()) { String username; String dn = ((X500Principal) principal).getName(X500Principal.RFC2253); username = SSLUtil.getIdFromSubjectDN(dn); principal = new UsernamePrincipal(username, authenticationProvider); } return subjectCreator.createSubjectWithGroups(new AuthenticatedPrincipal(principal)); } } return null; }
final Port<?> port = managementConfiguration.getPort(request); final AuthenticationProvider<?> authenticationProvider = managementConfiguration.getAuthenticationProvider(request); SubjectCreator subjectCreator = port.getSubjectCreator(request.isSecure(), request.getServerName());
try SubjectAuthenticationResult result = port.getSubjectCreator(request.isSecure(), request.getServerName()).createResultWithGroups(authenticationResult); Subject original = result.getSubject();