gpt4 book ai didi

java - 在 Spring 中读取 JAAS 身份验证提供程序的配置文件时出错

转载 作者:行者123 更新时间:2023-12-01 16:11:29 25 4
gpt4 key购买 nike

这真是让我抓狂。我为我的 Spring Web 应用程序配置了 JAAS 身份验证提供程序。我为其创建了一个 bean 定义,如下所示:

 <beans:bean id="jaasAuthenticationProvider"
class="org.springframework.security.providers.jaas.JaasAuthenticationProvider">
<custom-authentication-provider />
<beans:property name="loginConfig" value="file:webapps/mywebapp/WEB-INF/login.conf"/>
<beans:property name="loginContextName" value="myWebapp"/>
<beans:property name="callbackHandlers">
<beans:list>
<beans:bean class="org.springframework.security.providers.jaas.JaasNameCallbackHandler"/>
<beans:bean class="org.springframework.security.providers.jaas.JaasPasswordCallbackHandler"/>
</beans:list>
</beans:property>
</beans:bean>

我的 JAAS 的 login.conf 文件:

myWebapp {
com.sun.security.auth.module.Krb5LoginModule
required
doNotPrompt=false
useTicketCache=true
debug=true;
};

com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule
required;
};

当 Spring 初始化时,它会正确配置 bean。然而,当我尝试登录我的网络应用程序时,出现以下错误:

DEBUG webapp.AuthenticationProcessingFilter - Authentication request failed: org.springframework.security.AuthenticationServiceException: I/O error while reading configuration file.; nested exception is javax.security.auth.login.LoginException: I/O error while reading configuration file.

我在Spring源代码中的任何地方都找不到这个错误消息,而且错误消息本身也没有任何帮助。知道是什么原因造成的吗?

最佳答案

将文件放在类路径上,而不是尝试从 WEB-INF 目录中读取它。/webapps/myapp/WEB-INF/classes/login.conf - 然后在 Spring 配置中将行更改为:

    <beans:property name="loginConfig" value="classpath:login.conf"/>

我不认为您遇到了 Spring 错误,而是遇到了 filesystem/java 错误,不允许您从目录 WEB-INF 中读取。

关于java - 在 Spring 中读取 JAAS 身份验证提供程序的配置文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1065684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com