openid/src/main/java/org/springframework/security/openid/OpenIDAuthenticationProvider.java
public Authentication authenticate(final Authentication authentication)
			throws AuthenticationException {

		if (!supports(authentication.getClass())) {
			return null;
		}

		if (authentication instanceof OpenIDAuthenticationToken) {
			OpenIDAuthenticationToken response = (OpenIDAuthenticationToken) authentication;
			OpenIDAuthenticationStatus status = response.getStatus();

			// handle the various possibilities
			if (status == OpenIDAuthenticationStatus.SUCCESS) {
				// Lookup user details
				UserDetails userDetails = this.userDetailsService
						.loadUserDetails(response);

				return createSuccessfulAuthentication(userDetails, response);

			}
			else if (status == OpenIDAuthenticationStatus.CANCELLED) {
				throw new AuthenticationCancelledException("Log in cancelled");
			}
			else if (status == OpenIDAuthenticationStatus.ERROR) {
				throw new AuthenticationServiceException(
						"Error message from server: " + response.getMessage());
			}
			else if (status == OpenIDAuthenticationStatus.FAILURE) {
				throw new BadCredentialsException(
						"Log in failed - identity could not be verified");
			}
			else if (status == OpenIDAuthenticationStatus.SETUP_NEEDED) {
				throw new AuthenticationServiceException(
						"The server responded setup was needed, which shouldn't happen");
			}
			else {
				throw new AuthenticationServiceException(
						"Unrecognized return value " + status.toString());
			}
		}

		return null;
	}
public Authentication authenticate(final Authentication authentication)
			throws AuthenticationException {

		if (!supports(authentication.getClass())) {
			return null;
		}

		if (authentication instanceof OpenIDAuthenticationToken) {
			OpenIDAuthenticationToken response = (OpenIDAuthenticationToken) authentication;
			OpenIDAuthenticationStatus status = response.getStatus();

			// handle the various possibilities
			if (status == OpenIDAuthenticationStatus.SUCCESS) {
				// Lookup user details
				UserDetails userDetails = this.userDetailsService
						.loadUserDetails(response);

				return createSuccessfulAuthentication(userDetails, response);

			}
			else if (status == OpenIDAuthenticationStatus.CANCELLED) {
				throw new AuthenticationCancelledException("Log in cancelled");
			}
			else if (status == OpenIDAuthenticationStatus.ERROR) {
				throw new AuthenticationServiceException(
						"Error message from server: " + response.getMessage());
			}
			else if (status == OpenIDAuthenticationStatus.FAILURE) {
				throw new BadCredentialsException(
						"Log in failed - identity could not be verified");
			}
			else if (status == OpenIDAuthenticationStatus.SETUP_NEEDED) {
				throw new AuthenticationServiceException(
						"The server responded setup was needed, which shouldn't happen");
			}
			else {
				throw new AuthenticationServiceException(
						"Unrecognized return value " + status.toString());
			}
		}

		return null;
	}
public Authentication authenticate ( final Authentication authentication ) throws AuthenticationException { if ( ! supports ( authentication . getClass ( ) ) ) { return null ; } if ( authentication instanceof OpenIDAuthenticationToken ) { OpenIDAuthenticationToken response = ( OpenIDAuthenticationToken ) authentication ; OpenIDAuthenticationStatus status = response . getStatus ( ) ; // handle the various possibilities if ( status == OpenIDAuthenticationStatus . SUCCESS ) { // Lookup user details UserDetails userDetails = this . userDetailsService . loadUserDetails ( response ) ; return createSuccessfulAuthentication ( userDetails , response ) ; } else if ( status == OpenIDAuthenticationStatus . CANCELLED ) { throw new AuthenticationCancelledException ( "Log in cancelled" ) ; } else if ( status == OpenIDAuthenticationStatus . ERROR ) { throw new AuthenticationServiceException ( "Error message from server: " + response . getMessage ( ) ) ; } else if ( status == OpenIDAuthenticationStatus . FAILURE ) { throw new BadCredentialsException ( "Log in failed - identity could not be verified" ) ; } else if ( status == OpenIDAuthenticationStatus . SETUP_NEEDED ) { throw new AuthenticationServiceException ( "The server responded setup was needed, which shouldn't happen" ) ; } else { throw new AuthenticationServiceException ( "Unrecognized return value " + status . toString ( ) ) ; } } return null ; }
/*
(non-Javadoc)

@see
org.springframework.security.authentication.AuthenticationProvider#authenticate
(org.springframework.security.Authentication)
/ * ( non - Javadoc )