CAS单点登录服务器端验证重写

1.下载CAS Server代码。
  下载页面 http://www.jasig.org/cas/download ,目前最新版本为 CAS Server 3.5.2 Release
  
2.导入Eclipse中,成CAS Server Web工程
  2.1 将下载的压缩包中 cas-server-3.5.2\modules\cas-server-webapp-3.5.2.war压缩包导入到Eclipse中
  2.2 将压缩包中\cas-server-3.5.2\cas-server-webapp\src\main\java下面的源码复制到Eclipse WEB工程中src下。
  2.3 配置Jetty的SSL,运行https://localhost:8443/CASServer,就可以显示CAS验证页面。
     Jetty的SSL配置,详见:http://blog.csdn.net/dotuian/article/details/9311109
     
3.修改CAS默认的验证方式
  CAS的认证方式是可配置的,即我们可以通过提供自己的认证方式来替换默认用户名密码的方式,
  这个是在WEB-INF\deployerConfigContext.xml文件中指定的。
  

  3.1 自己编写一个验证类,继承抽象类 org.jasig.cas.authentication.handler.AuthenticationException ,然后实现 
  authenticateUsernamePasswordInternal 方式即可 
package org.jasig.cas.custom;
import org.jasig.cas.authentication.handler.AuthenticationException;
import org.jasig.cas.authentication.handler.support.AbstractUsernamePasswordAuthenticationHandler;
import org.jasig.cas.authentication.principal.UsernamePasswordCredentials;

public class CustomAuthenticationHandler extends
		AbstractUsernamePasswordAuthenticationHandler {

	@Override
	protected boolean authenticateUsernamePasswordInternal(
			UsernamePasswordCredentials credentials)
			throws AuthenticationException {

		String userName = credentials.getUsername();
		String password = credentials.getPassword();
		if ("root".equals(userName) && "rootadmin".equals(password)) {
			return true;
		}

		return false;
	}
}

  3.2 修改WEB-INF\deployerConfigContext.xml配置文件,注册自己编写的验证类
    
    

4.重新运行https://localhost:8443/CASServer,CAS就会以我们自定义的类中的方法来进行验证了。
  
  

※CAS Client端的设置,参考:http://blog.csdn.net/small_love/article/details/6664831

异常 "java.security.cert.CertificateException: No name matching localhost found"的解决办法:http://www.cnblogs.com/dycg/archive/2013/04/04/2999012.html

你可能感兴趣的:(Java,Jetty,CAS)