zoukankan      html  css  js  c++  java
  • spring boot-整合CAS Client实现单点登陆验证

    依赖:

    <dependency>
    <groupId>net.unicon.cas</groupId>
    <artifactId>cas-client-autoconfig-support</artifactId>
    <version>1.4.0-GA</version>
    </dependency>

    增加配置文件:

    cas.server-url-prefix=http://127.0.0.1            地址前缀
    cas.server-login-url=http://127.0.0.1/login   认证地址
    cas.client-host-url=http://192.26.4.28:8080   认证成功跳转地址
    cas.validation-type=CAS    
    
    -----cas.validation-type目前支持3中方式:1、CAS;2、CAS3;3、SAML

    开启CAS Client支持

    @SpringBootApplication
    
    @ComponentScan(basePackages={"com.chhliu.emailservice"})
    @EnableCasClient // 开启CAS支持
    public class Application extends SpringBootServletInitializer{
     public static void main(String[] args) {
     SpringApplication.run(Application.class, args);
       
     }
    }

     

    测试方法:

    @Controller
    public class TestController {
    
        @Value(value = "${cas.server-url-prefix}")
        private String serverUrlPrefix = "";
    
        @Value(value = "${cas.client-host-url}")
        private String clientHostUrl = "";
    
        @GetMapping("user")
        @ResponseBody
        public String user(HttpServletRequest request) {
            Assertion assertion = (Assertion) request.getSession().getAttribute(AbstractCasFilter.CONST_CAS_ASSERTION);
            String loginName = null;
            if (assertion != null) {
                AttributePrincipal principal = assertion.getPrincipal();
                loginName = principal.getName();
                System.out.println("访问者:" + loginName);
            }
            return "访问者:" + loginName;
        }
    
        @RequestMapping("/logout")
        public String logout(HttpSession session) {
            session.invalidate();
            return "redirect:" + serverUrlPrefix + "/logout?service=" + clientHostUrl + "/sso-client/user";
        }
    }

    5.1 登录:

    (1)打开浏览器访问:http://127.0.0.1:8888/sso-client/user
    (2)由于没有登录,重定向到:http://146.56.192.87:8080/cas/login?service=http://127.0.0.1:8888/sso-client/user
    (3)输入用户名密码,点击登录,成功之后跳转到http://127.0.0.1:8888/sso-client/user中

    5.2 退出:

    (4)访问:http://127.0.0.1:8888/sso-client/logout
    (5)cas完成退出,并跳转到http://127.0.0.1:8888/sso-client/user,由于该地址需要登录,仍会重定向到登录界面

  • 相关阅读:
    Best Time to Buy and Sell Stock I II III
    数据挖掘算法面试题
    C# 从CIL代码了解委托,匿名方法,Lambda 表达式和闭包本质
    ASP.NET MVC 5
    net破解一(反编译,反混淆-剥壳,工具推荐)
    面试题及相关参考答案
    Linux 查看内核版本命令的相关说明
    c# 获取应用程序exe文件路径及退出应用程序的几种方法
    C# WebBrowser设置代理
    c# combobox控件的使用
  • 原文地址:https://www.cnblogs.com/chdchd/p/15015166.html
Copyright © 2011-2022 走看看