页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

以下是一些自定义CAS登录表单的实例

1、登录CAS时密码加密


1、新增扩展包,依赖CAS扩展包:


2、创建一个类继承CASClientConnector,重写open方法,在open中对密码进行加密,比如本示例中MyCASClientConnector重写open方法,并对密码进行倒转加密:

代码块
languagejava
package smartbi.cas.client;
import smartbi.sdk.CASClientConnector;
public class MyCASClientConnector extends CASClientConnector{
	public MyCASClientConnector(String smartbiUrl) {
		super(smartbiUrl);
	}
	
	@Override
	public boolean open(String user, String password) {
		return super.open(user, encodePassowrd(password));
	}
	
	private String encodePassowrd(String password) {
		return new StringBuilder(password).reverse().toString();
	}
}



3、实现ICASClientConnectorCreator接口,在createCASClientConnector返回2中connector的实例对象

代码块
languagejava
package smartbi.cas.client;

import smartbi.sdk.CASClientConnector;

public class MyCASClientConnectorCreator implements ICASClientConnectorCreator {
	private static final MyCASClientConnectorCreator INSTANCE = new MyCASClientConnectorCreator();
	
	private MyCASClientConnectorCreator() {
	}
	
	public static MyCASClientConnectorCreator getInstance() {
		return INSTANCE;
	}
  
	public CASClientConnector createCASClientConnector(String smartbiUrl) {
		return new MyCASClientConnector(smartbiUrl);
	}
}



4、新增Module类,在activate方法中注册creator:

代码块
languagejava
package smartbi.cas;

import smartbi.cas.client.MyCASClientConnectorCreator;
import smartbi.cas.client.PluginCasLoginModule;
import smartbi.framework.IModule;

public class CasPwdEncoderModule implements IModule {

	private static final CasPwdEncoderModule INSTANCE = new CasPwdEncoderModule();
	
	private CasPwdEncoderModule() {
	}
	
	public static CasPwdEncoderModule getInstance() {
		return INSTANCE;
	}
	
	@Override
	public void activate() {
		PluginCasLoginModule.getInstance().setCASClientConnectorCreator(MyCASClientConnectorCreator.getInstance());
	}

}

...