List of usage examples for org.springframework.security.authentication UsernamePasswordAuthenticationToken toString
@Override
public String toString()
From source file:org.apache.nifi.registry.security.ldap.LdapIdentityProvider.java
@Override public AuthenticationResponse authenticate(AuthenticationRequest authenticationRequest) throws InvalidCredentialsException, IdentityAccessException { if (authenticationRequest == null || StringUtils.isEmpty(authenticationRequest.getUsername())) { logger.debug(/*ww w . j av a2 s. co m*/ "Call to authenticate method with null or empty authenticationRequest, returning null without attempting to authenticate"); return null; } if (ldapAuthenticationProvider == null) { throw new IdentityAccessException("The LDAP authentication provider is not initialized."); } try { final String username = authenticationRequest.getUsername(); final Object credentials = authenticationRequest.getCredentials(); final String password = credentials != null && credentials instanceof String ? (String) credentials : null; // perform the authentication final UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, credentials); final Authentication authentication = ldapAuthenticationProvider.authenticate(token); logger.debug("Created authentication token: {}", token.toString()); // use dn if configured if (IdentityStrategy.USE_DN.equals(identityStrategy)) { // attempt to get the ldap user details to get the DN if (authentication.getPrincipal() instanceof LdapUserDetails) { final LdapUserDetails userDetails = (LdapUserDetails) authentication.getPrincipal(); return new AuthenticationResponse(userDetails.getDn(), username, expiration, issuer); } else { logger.warn(String.format("Unable to determine user DN for %s, using username.", authentication.getName())); return new AuthenticationResponse(authentication.getName(), username, expiration, issuer); } } else { return new AuthenticationResponse(authentication.getName(), username, expiration, issuer); } } catch (final BadCredentialsException | UsernameNotFoundException | AuthenticationException e) { throw new InvalidCredentialsException(e.getMessage(), e); } catch (final Exception e) { // there appears to be a bug that generates a InternalAuthenticationServiceException wrapped around an AuthenticationException. this // shouldn't be the case as they the service exception suggestions that something was wrong with the service. while the authentication // exception suggests that username and/or credentials were incorrect. checking the cause seems to address this scenario. final Throwable cause = e.getCause(); if (cause instanceof AuthenticationException) { throw new InvalidCredentialsException(e.getMessage(), e); } logger.error(e.getMessage()); if (logger.isDebugEnabled()) { logger.debug(StringUtils.EMPTY, e); } throw new IdentityAccessException( "Unable to validate the supplied credentials. Please contact the system administrator.", e); } }
From source file:org.apache.nifi.registry.web.security.authentication.kerberos.KerberosIdentityProvider.java
@Override public AuthenticationResponse authenticate(AuthenticationRequest authenticationRequest) throws InvalidCredentialsException, IdentityAccessException { if (provider == null) { throw new IdentityAccessException("The Kerberos authentication provider is not initialized."); }//from ww w .j av a 2 s . co m try { // perform the authentication final String username = authenticationRequest.getUsername(); final Object credentials = authenticationRequest.getCredentials(); final String password = credentials != null && credentials instanceof String ? (String) credentials : null; // perform the authentication final UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, credentials); logger.debug("Created authentication token " + token.toString()); final Authentication authentication = provider.authenticate(token); logger.debug( "Ran provider.authenticate(token) and returned authentication for " + "principal={} with name={} and isAuthenticated={}", authentication.getPrincipal(), authentication.getName(), authentication.isAuthenticated()); return new AuthenticationResponse(authentication.getName(), username, expiration, issuer); } catch (final AuthenticationException e) { throw new InvalidCredentialsException(e.getMessage(), e); } }