在使用cas3的时候,往往有这样的需求,希望每个应用有个独立的登录页面

这块cas 官方文档有一些说明

https://wiki.jasig.org/display/CAS/Using+CAS+without+the+Login+Screen


首先从官方的角度,不建议使用多个登录页面,这样对安全会形成短板。但是

用户需求之上,如果我们要实现,有下面几种方式

1.通过参数来判断css来改变布局甚至一些图片,典型cas里面的default-view中

casLoginView.jsp 里面就有这样的描述,通过描述可以看出他通过不同css来区分

weblogin和mobilelogin。

比如片段

test="${not empty requestScope['isMobile'] and not empty mobileCss}">

content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />


2.cas服务端(或者各种应用中)建立一个独立的form页面

参考:https://wiki.jasig.org/display/CAS/Using+CAS+from+external+link+or+custom+external+form

比如:

在cas(或者各种的应用页面) web-inf/ 页面添加testlogin.html

代码:

   

       

Username :

       

Password :

       

Remember me :

       

       

       

   


casLoginView.jsp

实现自动提交功能:

...

<%@ page contentType="text/html; charset=UTF-8" %>

<%

String auto = request.getParameter("auto");

if (auto != null && auto.equals("true")) {

%>

   

       

   

   

       

">

           

           

           

           " />

           " />

           <% if ("true".equals(request.getParameter("rememberMe"))) {%>

               

           <% } %>


           

       

   

<%

} else {

%>

...

<%

}

%>




3.第三种方法 其实是第二种方法的启发,直接把用if-else 把多个页面组合在一起,通过参数来判断显示。(最好能可以支持多套casLoginView.jsp 不过研究下来好像比较难,也许cas开发者也是为了怕再次开放的人用太多灵活的多套casLoginView.jsp 页面跳来跳去把项目搞混吧。)