ToB企服应用市场:ToB评测及商务社交产业平台

标题: cas服务端、客户端搭建 [打印本页]

作者: 熊熊出没    时间: 2023-9-4 17:01
标题: cas服务端、客户端搭建
单点登录服务端搭建

1、下载cas包
https://github.com/apereo/cas-overlay-template/tree/5.3
这好像是最后一个maven版本的,之后都是grade版本的
2、使用idea打开代码,导入依赖
3、新建src目录、resource目录
4、复制cas-server-webapp-tomcat下的services、applicaiton.properties目录到resources目录下

5、修改resources/services/HTTPSandIMAPS-10000001.json文件,添加如下内容,支持http访问

6、添加数据库依赖
  1. <dependency>
  2.     <groupId>org.apereo.cas</groupId>
  3.     <artifactId>cas-server-support-jdbc</artifactId>
  4.     <version>${cas.version}</version>
  5. </dependency>
  6. <dependency>
  7.     <groupId>org.apereo.cas</groupId>
  8.     <artifactId>cas-server-support-jdbc-drivers</artifactId>
  9.     <version>${cas.version}</version>
  10. </dependency>
  11. <dependency>
  12.     <groupId>mysql</groupId>
  13.     <artifactId>mysql-connector-java</artifactId>
  14.     <version>8.0.29</version>
  15. </dependency>
复制代码
7、修改applicaiton.properties配置
  1. ##
  2. # 普通MD5用户jdbc验证
  3. ##
  4. #配置数据库连接
  5. cas.authn.jdbc.query[0].driverClass=com.mysql.cj.jdbc.Driver
  6. cas.authn.jdbc.query[0].url=jdbc:mysql://localhost:3306/leecx?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
  7. cas.authn.jdbc.query[0].user=root
  8. cas.authn.jdbc.query[0].password=root
  9. #添加jdbc认证
  10. cas.authn.jdbc.query[0].sql=SELECT * FROM sys_user WHERE USER_NAME = ?
  11. #哪个字段作为密码字段
  12. cas.authn.jdbc.query[0].fieldPassword=PASSWORD
  13. #哪个字段作为过期字段 0:未过期  1:已过期
  14. cas.authn.jdbc.query[0].fieldExpired=EXPIRED
  15. #哪个字段作为是否可用字段 0:未禁用  1:已禁用
  16. cas.authn.jdbc.query[0].fieldDisabled=STATUS
  17. #MD5设置
  18. cas.authn.jdbc.query[0].passwordEncoder.type=DEFAULT
  19. cas.authn.jdbc.query[0].passwordEncoder.characterEncoding=UTF-8
  20. cas.authn.jdbc.query[0].passwordEncoder.encodingAlgorithm=MD5
复制代码
8、配置tomcat


9、启动项目,访问http://localhost:8080/cas_overlay_war_exploded/login

10、自定义页面
复制cas-server-webapp-tomcat下的templates到resources下,不要修改文件名称
页面使用thymeleaf模板语法,可参考链接里的第一个链接

cas客户端搭建

1、建立一个springboot项目
2、引入依赖
  1. <dependency>
  2.     <groupId>org.jasig.cas.client</groupId>
  3.     <artifactId>cas-client-support-springboot</artifactId>
  4.     <version>3.6.4</version>
  5. </dependency>
复制代码
3、在启动类上添加@EnableCasClient注解
4、修改application.properties
  1. server.port=8082
  2. cas.server-url-prefix=http://localhost:8080/cas_overlay_war_exploded
  3. cas.server-login-url=${cas.server-url-prefix}/login
  4. cas.client-host-url=http://localhost:${server.port}
  5. cas.validation-type=cas3
  6. cas.single-logout.enabled=true
复制代码
5、写个测试代码测试一下
  1. @Controller
  2. public class TestController {
  3.     @Autowired
  4.     CasClientConfigurationProperties casProps;
  5.     @ResponseBody
  6.     @RequestMapping("/sso-test1")
  7.     public String test1(HttpSession session) {
  8.         Assertion assertion = (Assertion) session.getAttribute(AbstractCasFilter.CONST_CAS_ASSERTION);
  9.         AttributePrincipal principal = assertion.getPrincipal();
  10.         String loginName = principal.getName();
  11.         return "sso-test1,当前登录账户" + loginName;
  12.     }
  13.     /**
  14.      * 退出 后自动重定向自定义接口
  15.      */
  16.     @RequestMapping("/system/logout1")
  17.     public String logout1(HttpServletRequest request) {
  18.         HttpSession session = request.getSession();
  19.         session.invalidate();
  20.         return "redirect:" + casProps.getServerUrlPrefix() + "/logout?service="+ casProps.getClientHostUrl()+"/system/logoutSuccess";
  21.     }
  22.     /**
  23.      * 退出成功页
  24.      */
  25.     @RequestMapping("/system/logoutSuccess")
  26.     @ResponseBody
  27.     public String logoutSuccess() {
  28.         return "test2成功退出!";
  29.     }
  30. }
复制代码
6、访问http://localhost:8082/sso-test1
会跳转到cas登录页,登录成功后成功访问
参考链接:
https://www.cnblogs.com/hooly/p/12784397.html
https://www.cnblogs.com/kgdxpr/p/9933106.html
https://blog.csdn.net/bigdata_dog/article/details/123896404

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4