...
以下是一些自定义CAS登录表单的实例
1、登录CAS时密码加密
1、新增扩展包,依赖CAS扩展包:
2、创建一个类继承CASClientConnector,重写open方法,在open中对密码进行加密,比如本示例中MyCASClientConnector重写open方法,并对密码进行倒转加密:
代码块 | ||
---|---|---|
| ||
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的实例对象
代码块 | ||
---|---|---|
| ||
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:
代码块 | ||
---|---|---|
| ||
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()); } } |
...