SpringBoot+CAS单点登录之自定义登录页面

 [[411003]]

1.实现思路

CAS Server 对于自定义登录页面其实提供了很好的支持,可以从多个角度来实现,松哥分别来和大家介绍。

创新互联专注于企业网络营销推广、网站重做改版、宁晋网站定制设计、自适应品牌网站建设、html5购物商城网站建设、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为宁晋等各大城市提供网站开发制作服务。

CAS Server 上提供的登录页面,早期是用 jsp 写的,我们用的 5.3.2 版本里是用 Thymeleaf 写的,所以现在自定义登录页面也是用 Thymeleaf 来写。

想要自定义登录页面,我们有两种不同的方式:

  1. 直接修改源码,位置在 overlays/org.apereo.cas.cas-server-webapp-tomcat-5.3.14/WEB-INF/classes/templates/casLoginView.html,直接就在它的源码基础上改,这个可以实现需求,但是一般不推荐。
  2. 把自定义的登录页面当成 theme 来开发,然后在配置文件中配置 theme,这种方式就很灵活,而且既可以配置全局主题,也可以配置局部主题。全局主题就是所有的登录页面都使用自定义的登录页面,局部主题则是可以根据不同的 CAS Client 来配置,不同的 CAS Client 将看到不同的登录页面。

松哥在这里主要和大家介绍第二种方式。

2.自定义登录页面

首先我们需要提前准备好自己的登录页面,松哥这里还是使用我本系列前面用过的登录页面:

这个大家可以在文末下载页面模版,也可以自己找一个喜欢的登录页面模版,是在找不到,随便写个表单也行,只要实现了自定义的效果即可。

自定义的登录页面准备好之后,接下来,我们创建一个新的目录 src/main/resources/static/themes/mylogin,将自定义页面涉及到的静态资源文件拷贝进去,这里的 themes 目录下专门放置各种自定义登录页面的静态资源,mylogin 相当于是我当前使用的主题名称:

接下来创建 src/main/resources/mylogin.properties 文件,将登录页面中的一些 js、css 引用配置进去,如下:

 
 
 
 
  1. mylogin.css.style=/themes/mylogin/css/style.css
  2. mylogin.css.fa=/themes/mylogin/css/font-awesome-4.7.0/css/font-awesome.min.css
  3. mylogin.js.jq=/themes/mylogin/js/jquery.min.js
  4. mylogin.js.index=/themes/mylogin/js/index.js

我的自定义登录页面里边就这四个引用,如果你有更多的引用,就在这里多配置即可,这里的 key 可以自定义,value 就是静态资源的位置。

接下来,创建 src/main/resources/templates/mylogin/casLoginView.html 文件,casLoginView.html 就是你的登录页面,注意文件名不能写错。Thymeleaf 模版默认是在 templates 目录下,所以我们要在 resources 目录下新建 templates 目录,templates 目录下再新建 mylogin 目录。

casLoginView.html 页面内容如下:

 
 
 
 
  1.     
  2.     江南一点雨
  3.     
  4.     
  5.     
  6.         统一认证中心
  •         
  •             
  •                 用户名
  •                 
  •                 
  •             
  •             
  •                 密码
  •                 
  •                 
  •             
  •             
  •                         
  •                         
  •             
  •                 
  •                     登录
  •                     
  •                 
  •             
  •         
  •         忘记密码?
  •     
  •     
  •         
  •             
  •         
  •         江南一点雨-注册
  •         
  •             用户名
  •             
  •             
  •         
  •         
  •             密码
  •             
  •             
  •         
  •         
  •             确认密码
  •             
  •             
  •         
  •         
  •             
  •                 注册
  •             
  •         
  •     
  • 这就是一个普通的登录页面,我只是把 js 和 css 的引用修改了下而已,所以这里也就不做过多介绍。

    OK,如此之后,我们的登录页面就算定义好了,接下来就是登录页面的引用了。

    登录页面引用,我们有两种方式:

    第一种是全剧配置,直接在 application.properties 中添加如下配置:

     
     
     
     
    1. cas.theme.defaultThemeName=mylogin

    mylogin 就是我们在前面反复出现的目录,相当于是我的主题名。这个配置完成后,以后不管是直接在 CAS Server 上登录,还是从 CAS Client 跳转到 CAS Server 上登录,看到的都是自定义登录页面。

    第二种方式则是局部配置,局部配置针对某一个 CAS Client 的配置,所以我们可以在 src/main/resources/services/client1-99.json 文件中(复习前面文章就知道该文件怎么来的)添加 theme 配置:

     
     
     
     
    1. {
    2.   "@class": "org.apereo.cas.services.RegexRegisteredService",
    3.   "serviceId": "^(https|http)://.*",
    4.   "name": "client1",
    5.   "id": 99,
    6.   "description": "应用1 的定义信息",
    7.   "evaluationOrder": 1,
    8.   "theme": "mylogin"
    9. }

    这样,以后如果是通过该 CAS Client 跳转到 CAS Server 上登录,则会看到自定义登录页面,如果通过其他 CAS Client 或者直接就在 CAS Server 上登录,则看到的还是默认登录页面,当然我们也可以给其他 CAS Client 再去定义它自己的登录页面。

    3.小结

    好了,这就是松哥和大家介绍的 CAS 单点登录自定义登录页面的问题,感兴趣的小伙伴可以试试~

    本文转载自微信公众号「江南一点雨」,可以通过以下二维码关注。转载本文请联系江南一点雨公众号。

    网页名称:SpringBoot+CAS单点登录之自定义登录页面
    文章位置:http://www.gawzjz.com/qtweb/news33/206133.html

    网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

    广告

    声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

    猜你还喜欢下面的内容

    定制网站知识

    分类信息网站