CAS SSO构建自定义身份验证处理程序

时间:2020-11-11 09:16:10

标签: cas

我的工作区中有两组不同的人。 那些正式员工的ID将以s开头,后跟一个数字序列。例如s123456789。 那些非正规员工的ID将全数显示。例如81234567

常规人员将针对LDAP服务器进行身份验证。非正规人员将通过RESTful api进行身份验证。

我想添加一个实现上述策略的服务。

它将首先检查ID是否以s开头,然后使用LDAP进行身份验证。 如果没有,请使用rest api进行身份验证。

查阅CAS官方文档后,我认为只有自定义身份验证处理程序才能实现此目的。 但是我如何开始使用cas-overlay-template?有方向吗?

1 个答案:

答案 0 :(得分:0)

要设计自定义身份验证处理程序,可以将总体任务分类如下:

  • 设计身份验证处理程序
public class MyAuthenticationHandler extends AbstractUsernamePasswordAuthenticationHandler {
}
  • 向CAS身份验证引擎注册身份验证处理程序。
public class MyAuthenticationEventExecutionPlanConfiguration
                    implements AuthenticationEventExecutionPlanConfigurer {
    @Autowired
    private CasConfigurationProperties casProperties;

    @Bean
    public AuthenticationHandler myAuthenticationHandler() {
        var handler = new MyAuthenticationHandler();
      
        return h;
    }

    @Override
    public void configureAuthenticationExecutionPlan(final AuthenticationEventExecutionPlan plan) {
      plan.registerAuthenticationHandler(myAuthenticationHandler());
    }
}
  • 告诉CAS识别注册记录和身份验证配置。
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
   com.example.cas.MyAuthenticationEventExecutionPlanConfiguration

有关注释和详细信息,请参见this link