in plugins/spring/src/main/java/org/apache/cxf/fediz/spring/web/FederationAuthenticationEntryPoint.java [91:142]
public void commence(final HttpServletRequest servletRequest, final HttpServletResponse response,
final AuthenticationException authenticationException) throws IOException, ServletException {
FedizContext fedContext = federationConfig.getFedizContext();
LOG.debug("Federation context: {}", fedContext);
// First see if we want to handle the request in some custom way
if (requestHandler != null && requestHandler.canHandleRequest(servletRequest)) {
requestHandler.handleRequest(servletRequest, response);
return;
}
// Check to see if it is a metadata request
MetadataDocumentHandler mdHandler = new MetadataDocumentHandler(fedContext);
if (mdHandler.canHandleRequest(servletRequest)) {
mdHandler.handleRequest(servletRequest, response);
return;
}
final String redirectUrl;
try {
FedizProcessor wfProc =
FedizProcessorFactory.newFedizProcessor(fedContext.getProtocol());
RedirectionResponse redirectionResponse =
wfProc.createSignInRequest(servletRequest, fedContext);
redirectUrl = redirectionResponse.getRedirectionURL();
if (redirectUrl == null) {
LOG.warn("Failed to create SignInRequest. Redirect URL null");
throw new ServletException("Failed to create SignInRequest. Redirect URL null");
}
Map<String, String> headers = redirectionResponse.getHeaders();
if (!headers.isEmpty()) {
for (Entry<String, String> entry : headers.entrySet()) {
response.addHeader(entry.getKey(), entry.getValue());
}
}
HttpSession session = servletRequest.getSession(true);
session.setAttribute(SAVED_CONTEXT, redirectionResponse.getRequestState());
} catch (ProcessingException ex) {
LOG.warn("Failed to create SignInRequest", ex);
throw new ServletException("Failed to create SignInRequest: " + ex.getMessage());
}
preCommence(servletRequest, response);
if (LOG.isInfoEnabled()) {
LOG.info("Redirecting to IDP: " + redirectUrl);
}
response.sendRedirect(redirectUrl);
}