Java 使用CXF和Spring在嵌入式Jetty中配置JAAS

Java 使用CXF和Spring在嵌入式Jetty中配置JAAS,java,spring,rest,cxf,jaas,Java,Spring,Rest,Cxf,Jaas,我正试图建立一个CXF+Spring+嵌入式jetty,其基本身份验证依赖于JAAS,我在连接所有部件时遇到问题 我想使用CXF JAASLoginInterceptor,它看起来非常容易配置,因此我在ApplicationContext中的服务定义如下 <jaxws:endpoint address="/soapService"> <jaxrs:serviceBeans> <ref bean="serviceImpl" />

我正试图建立一个CXF+Spring+嵌入式jetty,其基本身份验证依赖于JAAS,我在连接所有部件时遇到问题

我想使用CXF JAASLoginInterceptor,它看起来非常容易配置,因此我在ApplicationContext中的服务定义如下

<jaxws:endpoint address="/soapService">
    <jaxrs:serviceBeans>
        <ref bean="serviceImpl" />
    </jaxrs:serviceBeans>
    <jaxws:inInterceptors>
        <ref bean="authenticationInterceptor"/>
    </jaxws:inInterceptors>
</jaxws:endpoint>

<bean id="authenticationInterceptor" class="org.apache.cxf.interceptor.security.JAASLoginInterceptor">
   <property name="contextName" value="jaasContext"/>
   <property name="roleClassifier" value="ROLE_"/>
</bean>

如文档所述:“JAAS身份验证器配置为JAAS登录上下文的名称(服务器知道的JAAS配置资源中通常指定的名称)”

如何以最基本的方式设置“JAAS配置资源”


谢谢

最后,做这件事很容易。您只需要在类路径上放置一个带有登录模块配置的文件,并设置指向该文件的系统属性“java.security.auth.login.config”

e、 g.启用基于属性文件的身份验证的文件:

jaasContext{
org.eclipse.jetty.plus.jaas.spi.PropertyFileLoginModule可选 file=“src/main/resources/credentials.props”; };

请注意,CXF拦截器中的contextName与jaas配置文件中的相同