SsoAuthenticationRedirectStrategy 为自己实现的具有重定向功能的类
@Component
public class SsoAuthenticationRedirectStrategy implements AuthenticationRedirectStrategy {
// 定义静态变量, 用于接收外部值
public static String serverLoginUrl;
public static String clientHostUrl;
@Override
public void redirect(HttpServletRequest request, HttpServletResponse response, String potentialRedirectUrl) throws IOException {
// 自定义的重定向代码
}
}
SsoCasClientConfigurer 将自定义的重定向类添加到cas客户端中
@Configuration
public class SsoCasClientConfigurer implements CasClientConfigurer {
// 读取配置文件中属性值
@Value("${cas.server-login-url}")
private String serverLoginUrl;
@Value("${cas.client-host-url}")
private String clientHostUrl;
@Override
public void configureAuthenticationFilter(FilterRegistrationBean authenticationFilter) {
// 传递参数到 自定义的重定向类中, 给重定向类中的静态变量赋值
SsoAuthenticationRedirectStrategy.serverLoginUrl = serverLoginUrl;
SsoAuthenticationRedirectStrategy.clientHostUrl = clientHostUrl;
authenticationFilter.addInitParameter("authenticationRedirectStrategyClass", "XXX.XXX.XXX.XXX.XX.SsoAuthenticationRedirectStrategy"); // 此处为自定义重定向类的全路径名
}
}