CAS 二次开发踩过的坑
cas登出问题:
如果直接CAS的logout话,会出现注销成功页面,其实大部分情况下这个页面是没有必要的,更多的需要可能是退出后显示登录页面,并且登录成功后还是会进入到之前的业务系统,那么可以修改cas-servlet.xml, 在logoutController的bean配置中添加属性"followServiceRedirects" 设置为true,然后在业务系统的注销连接中加入"service 参数",值为业务系统的绝对URL。
如你的业务系统URL为http://a:8080/login 那么注销URL就是 http://localhost:8080/cas/logout?service=http://a:8080/login
cas 登录集成限制限制
在开发中,我需要限制只有我们信任的应用ip(域名)才可以集成cas:
我们可以修改配置文件 vim deployerConfigContext.xml 中的serviceId的值,通过正则表达式来限制集成的应有IP。
<bean id="serviceRegistryDao"
class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl">
<property name="registeredServices">
<list>
<bean class="org.jasig.cas.services.RegexRegisteredService">
<property name="id" value="0" />
<property name="name" value="HTTP and IMAP" />
<property name="description" value="Allows HTTP(S) and IMAP(S) protocols" />
<property name="serviceId" value="^(https?|imaps?)://192.168.168.111.*" />
<property name="evaluationOrder" value="10000001" />
</bean>
修改密码错误提示语
密码不正确是默认提示的是:您提供的凭证有误。
实际中我们看到的大都是:密码错误的提示。我们修改成我们自己想要的提示语。
因为CAS异常处理逻辑是通过errorcode去messages_zh_CN.properties寻找已经中定义好的异常消息的。
我们默认的提示语:您提供的凭证有误可以在这个中文国际化文件中找到:
error.authentication.credentials.bad=您提供的凭证有误。