当前位置: 首页 > 知识库问答 >
问题:

如何在CAS 5中启用基于文件的身份验证

师野
2023-03-14

我在本地机器上设置了一个独立的CAS5实例进行修补/黑客攻击,并试图将其设置为部署到Tomcat的独立WAR文件,并使用简单的基于文件的身份验证。

从WAR覆盖模板(https://github.com/apereo/cas-overlay-template)开始,我添加了以下依赖项,如https://apereo.github.io/cas/5.0.x/installation/whitelist-authentication.html#example-password-file所示。

    <dependency>
      <groupId>org.apereo.cas</groupId>
      <artifactId>cas-server-support-generic</artifactId>
      <version>${cas.version}</version>
    </dependency>        

然后,我在src/main/resources中创建了一个简单的passwd.txt文件,其中包含以下内容。

bob::bob
alice::alice

最后,我将基于文件的属性(c.f.https://apereo.github.io/cas/5.0.x/installation/configuration-properties.html#file-authentication)添加到etc/cas/config/cas.properties中。

cas.authn.file.filename=classpath:passwd.txt
cas.authn.accept.users=
cas.authn.file.passwordEncoder.type=NONE
cas.authn.file.separator=::

当我部署应用程序时,应用程序启动,但登录表单中接受的唯一用户是casuser/Mellon(默认值)。我甚至尝试将cas.authn.policy.any.tryAll=true属性添加到cas.properties文件中,但是Alice和Bob都无法识别。

我是否应该在不同的地方设置这些选项?启用基于文件的身份验证还需要做什么吗?

共有1个答案

施选
2023-03-14

在这个问题上花了太多时间后,我想省去其他人的头痛。这里的关键是我修改了/etc/cas/config/cas.properties。当编译要部署在servlet容器上的独立WAR时,这并没有达到预期的效果。我的猜测(未经验证)是,如果您正在创建一个可执行JAR,这种工作方式会有所不同。

我最后所做的是注释掉/etc/cas/config/cas.properties中的所有条目,并将它们移动到/src/main/resources/application.properties。这是有影响的,但导致了一些关于org.springframework.beans.factory.beanCreationException的模糊错误:无法创建绑定器工厂,在类路径上找不到Meta-INF/spring.binders资源。

似乎设置独立WAR覆盖的最佳方法是使用提供的模板,从CAS源代码(https://github.com/apereo/CAS/blob/958a9fbb87fb728875a7a35ee45124e818f90b17/webapp/resources/application.properties)中复制默认设置,添加文档指示的Maven依赖项,然后添加/修改属性以获得您想要的效果。

 类似资料:
  • 我关注的是在Solr4.3中启用基本身份验证的链接。 https://lucidworks.com/blog/2015/08/17/securing-solr-basic-auth-permission-rules/

  • 问题内容: 如何在AngularJs中使用基本身份验证?我已经在Google上搜索了,但是资源对我来说不起作用。我 非常 新AngularJS 问题答案: 假设您的html定义如下: 您可以使用以下基本身份验证将后端连接到rest api: 请注意,此代码的大部分是方法。如果不需要支持IE9及更低版本,则可以将其替换为本地JS实现- atob()和btoa():https : //develope

  • 所以我正忙着为twitter开发一个应用程序,我希望人们使用PIN进行身份验证。(https://dev.twitter.com/oauth/pin-based). 要向人们显示PIN码,我需要使用以下命令:https://dev.twitter.com/oauth/reference/get/oauth/authorize 那里的例子说:https://api.twitter.com/oauth

  • 我正在使用spring security 5和spring boot 2.0.0 我有一个测试配置文件。 我有springBootApplication文件。 安全日志在下面

  • 我想使用基本身份验证调用keydrope Rest API。为了做到这一点,我尝试了下面的答案,但缺少链接。 我已将客户端访问类型设置为机密,并启用了直接访问授权。 显然,需要在Java适配器配置中指定启用基本身份验证,但我看不出这是如何实现的。文档中提到它是一个JSON文件,听起来像是我将其作为配置添加到Keyclope目录中。 最后,我看到有人提到使用生成的秘密。我可以在选项卡中生成一个秘密,

  • 有人能给我一个逐步描述如何基于cookie的身份验证工作吗?我从来没有做过任何涉及身份验证或cookie的事情。浏览器需要做什么?服务器需要做什么?按什么顺序?我们怎么保证东西安全?