CAS企业解决方案

jopen 6年前

CAS企业解决方案

   关于CAS的原理就不在这里介绍了,用户发往系统的请求都会重定向到CAS服务器,由CAS来做一个认证,CAS支持多种数据获取方式基于JDBC/LDAP/WS等等。 JDBC就是直接在数据库中验证用户名的密码方式。

    一般需要做SSO认证时,可以把权限/认证服务作为一个单独的工程部署,也可以单独提供一个独立的接口出来,这就是说身份的认证和权限的认证都是在我们用编码的方式来验证,这种方式比CAS直接通过JDBC来访问数据库验证的方式更加灵活,可控性更强。

     下面讲解一下上图中的CAS 从 应用权限服务 获取验证的配置方式: 

      扩展抽象类:org.jasig.cas.authentication.handler.support. AbstractUsernamePasswordAuthenticationHandler重载如下方法:

1 protected abstract boolean authenticateUsernamePasswordInternal(
2         final UsernamePasswordCredentials credentials)
3         throws AuthenticationException;


</div> </div>
<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />

SimpleTestUserPasswordAuthenticationHandler这个类改为自己的实现类,authenticateUsernamePasswordInternal方法可以实现获取权限通过各种方式,比如WS/EJB/缓存 等等。