# cas-springboot-demo使用 源代码地址 https://gitee.com/dromara/MaxKey/tree/main/integrations/cas-springboot-demo 感谢 xiazhenyou 提供Demo。 # cas-springboot-demo 基于spring boot配置cas客户端 demo分别写了三个请求:拦截请求 test1/index,test1/index1 以及不拦截请求test1/index2, ## 第一步,引入cas 客户端所需包 net.unicon.cas cas-client-autoconfig-support 2.3.0-GA ## 第二部,配置spring boot 配置文件 ``` server: port: 8989 cas: # cas服务端地址 server-url-prefix: http://sso.maxkey.top/sign/authz/cas/ # cas服务端登陆地址 server-login-url: http://sso.maxkey.top/sign/authz/cas/login # 客户端访问地址 client-host-url: http://localhost:8989/ # 认证方式,默认cas validation-type: cas # 客户端需要拦截的URL地址 authentication-url-patterns: - /test1/index - /test1/index1 ``` 扩展配置项 ```` cas.authentication-url-patterns cas.validation-url-patterns cas.request-wrapper-url-patterns cas.assertion-thread-local-url-patterns cas.gateway cas.use-session cas.redirect-after-validation cas.allowed-proxy-chains cas.proxy-callback-url cas.proxy-receptor-url cas.accept-any-proxy server.context-parameters.renew ```` ## 第三部 在application启动类上加上 @EnableCasClient 注解 ```java @SpringBootApplication @EnableCasClient public class CasClientDemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } ``` ## 第四步 在代码中获取登录用户信息 ``` java @GetMapping("test1/index1") public String index1(HttpServletRequest request){ String token =request.getParameter("token"); System.out.println("token : "+token); Assertion assertion = (Assertion) request.getSession().getAttribute(AbstractCasFilter.CONST_CAS_ASSERTION); String username= assertion.getPrincipal().getName(); System.out.println(username); return "test index cas拦截正常,登录账号:"+username; } ```