- @since
*/
public class UsernamePasswordSysCredential extends RememberMeUsernamePasswordCredential {
@Size(min = 2, message = “require system”)
private String system;
public String getSystem() {
return system;
}
public UsernamePasswordSysCredential setSystem(String system) {
this.system = system;
return this;
}
@Override
public int hashCode() {
return new HashCodeBuilder()
.appendSuper(super.hashCode())
.append(this.system)
.toHashCode();
}
}
绑定参数
前端重写绑定参数,并且重写指定原有的“
/*
- 版权所有.©2008-2017. 卡尔科技工作室
*/
package com.carl.sso.support.auth;
import org.apereo.cas.web.flow.AbstractCasWebflowConfigurer;
import org.apereo.cas.web.flow.CasWebflowConstants;
import org.springframework.webflow.definition.registry.FlowDefinitionRegistry;
import org.springframework.webflow.engine.Flow;
import org.springframework.webflow.engine.ViewState;
import org.springframework.webflow.engine.builder.BinderConfiguration;
import org.springframework.webflow.engine.builder.support.FlowBuilderServices;
/**
-
重新定义默认的web流程
-
@author Carl
-
@date 2017/10/23
-
@since 1.6.0
*/
public class CustomWebflowConfigurer extends AbstractCasWebflowConfigurer {
public CustomWebflowConfigurer(FlowBuilderServices flowBuilderServices, FlowDefinitionRegistry flowDefinitionRegistry) {
super(flowBuilderServices, flowDefinitionRegistry);
}
@Override
protected void doInitialize() throws Exception {
final Flow flow = getLoginFlow();
bindCredential(flow);
}
/**
-
绑定输入信息
-
@param flow
*/
protected void bindCredential(Flow flow) {
//重写绑定自定义credential
createFlowVariable(flow, CasWebflowConstants.VAR_ID_CREDENTIAL, UsernamePasswordSysCredential.class);
//登录页绑定新参数
final ViewState state = (ViewState) flow.getState(CasWebflowConstants.STATE_ID_VIEW_LOGIN_FORM);
final BinderConfiguration cfg = getViewStateBinderConfiguration(state);
//由于用户名以及密码已经绑定,所以只需对新加系统参数绑定即可
cfg.addBinding(new BinderConfiguration.Binding(“system”, null, false));
}
}
UsernamePasswordSystemAuthenticationHandler
当用户名为admin,并且system为sso即允许通过为了测试简单才定义简单的逻辑,开发过程中慎重考虑
/*
- 版权所有.©2008-2017. 卡尔科技工作室
*/
package com.carl.sso.support.