1 package org.springframework.security.ui.cas.util;
3 import java.io.IOException;
7 import org.springframework.security.ui.AbstractProcessingFilter;
8 import org.springframework.security.ui.cas.CasProcessingFilterEntryPoint;
9 import org.springframework.security.ui.savedrequest.SavedRequest;
10 import org.springframework.security.util.PortResolver;
11 import org.springframework.security.util.PortResolverImpl;
13 import javax.servlet.ServletException;
14 import javax.servlet.ServletRequest;
15 import javax.servlet.ServletResponse;
17 import javax.servlet.http.HttpServletRequest;
18 import javax.servlet.http.HttpServletResponse;
20 import org.jasig.cas.client.util.CommonUtils;
21 import org.springframework.security.AuthenticationException;
27 * This Utilise Class provide Multi CAS authentication based on Cookies.
29 public class MultiCasProcessingFilterEntryPoint extends
30 CasProcessingFilterEntryPoint {
33 private String loginFormUrl = "";
35 private List<String> loginUrls;
37 private String responseUrl = "";
39 private List<String> logoutUrls;
42 public void commence(final ServletRequest servletRequest, final ServletResponse servletResponse,
43 final AuthenticationException authenticationException) throws IOException, ServletException {
45 final HttpServletResponse response = (HttpServletResponse) servletResponse;
47 final String urlEncodedService = CommonUtils.constructServiceUrl(null, response, this.getServiceProperties().getService(), null, "ticket",true);
48 final String redirectUrl = CommonUtils.constructRedirectUrl(this.getLoginUrl(), "service", urlEncodedService, this.getServiceProperties().isSendRenew(), false);
52 HttpServletRequest req = (HttpServletRequest) servletRequest;
54 SavedRequest current = (SavedRequest)req.getSession().getAttribute(AbstractProcessingFilter.SPRING_SECURITY_SAVED_REQUEST_KEY);
55 realUrl = current.getFullRequestUrl();
61 PortResolver portResolver = new PortResolverImpl();
62 SavedRequest savedRequest = new SavedRequest(req, portResolver){
63 public String getFullRequestUrl(){
67 req.getSession().setAttribute(AbstractProcessingFilter.SPRING_SECURITY_SAVED_REQUEST_KEY, savedRequest);
69 response.sendRedirect(redirectUrl+ "&realUrl="+realUrl);
73 public String getLoginFormUrl() {
78 public void setLoginFormUrl(String loginFormUrl) {
79 this.loginFormUrl = loginFormUrl;
83 public List<String> getLoginUrls() {
88 public void setLoginUrls(List<String> loginUrls) {
89 this.loginUrls = loginUrls;
93 public String getResponseUrl() {
98 public void setResponseUrl(String responseUrl) {
99 this.responseUrl = responseUrl;
103 public List<String> getLogoutUrls() {
108 public void setLogoutUrls(List<String> logoutUrls) {
109 this.logoutUrls = logoutUrls;