Java Spring登录并提供任何详细信息

Java Spring登录并提供任何详细信息,java,spring,spring-security,spring-ws,Java,Spring,Spring Security,Spring Ws,在Spring中,有人知道实现用户服务或身份验证提供者的方法吗?该服务或身份验证提供者将在登录时接受任何用户 这是我上一个问题的补充: 我在spring ws项目中有一个基本的安全设置: <security:http auto-config="true"> <security:intercept-url pattern="/**" access="ROLE_USER" /> <security:intercept-url pattern="/*.ws

在Spring中,有人知道实现用户服务或身份验证提供者的方法吗?该服务或身份验证提供者将在登录时接受任何用户

这是我上一个问题的补充:

我在spring ws项目中有一个基本的安全设置:

<security:http auto-config="true">
    <security:intercept-url pattern="/**" access="ROLE_USER" />
    <security:intercept-url pattern="/*.wsdl" access="ROLE_USER" />
    <security:http-basic/>
</security:http>

<security:authentication-manager erase-credentials="false">
    <security:authentication-provider user-service-ref="userService">
        <security:user-service>
            <security:user name="me" password="mypass"
                authorities="ROLE_USER" />
        </security:user-service>
    </security:authentication-provider>
</security:authentication-manager>

我不想在用户服务中指定用户,我希望具有任何详细信息的用户都可以访问,我只想确保用户提供用户名和密码,并确保我可以从
SecurityContextHolder
访问此信息

是否有必要实现我自己的用户服务或身份验证提供商来实现这一点?如果有,是否有人可以指出示例的方向或为我提供一个示例


谢谢

您需要提供自己的
AuthenticationProvider
,即
org.springframework.security.authentication.AuthenticationProvider
接口的实现

<security:authentication-manager alias="authenticationManager">
  <security:authentication-provider ref="myProvider" />
</security:authentication-manager>

<bean id="myProvider" class="MyProvider"/>

MyProvider
然后可以委托给自定义的
UserDetailsService
来设置作者(角色),或者直接设置
ROLE\u USER

如果您更改

<security:http auto-config="true">


然后,您可以从

<security:intercept-url pattern="/**" access="ROLE_USER" />
<security:intercept-url pattern="/*.wsdl" access="ROLE_USER" />



这将允许任何经过身份验证的用户访问这些url模式。

您需要执行以下操作:

<security:http auto-config="true">
     <security:intercept-url pattern="/**" access="IS_AUTHENTICATED_REMEMBERED" />
     <security:intercept-url pattern="/*.wsdl" access="IS_AUTHENTICATED_REMEMBERED" />
     <security:http-basic/>
</security:http>
配置拦截URL以提供对任何角色名称的访问。您可以通过执行以下操作来完成此操作:

<security:http auto-config="true">
     <security:intercept-url pattern="/**" access="IS_AUTHENTICATED_REMEMBERED" />
     <security:intercept-url pattern="/*.wsdl" access="IS_AUTHENTICATED_REMEMBERED" />
     <security:http-basic/>
</security:http>

创建您自己的用户服务,该服务为用户授予至少一个用户名和密码组合的权限。 配置spring security以使用您创建的服务

<bean id="userService" class="com.ek.UserService" />
<authentication-manager alias="authenticationManager">
    <authentication-provider user-service-ref="userService" />
</authentication-manager>


我希望这能让你知道你需要做什么。否则,我们可以为您创建一个示例代码。

这只是问题的一半,因为您仍然需要一个自定义的
AuthenticationProvider
来伪造身份验证(接受任何用户/pw组合)。这只是问题的一半,因为您仍然需要一个自定义的
AuthenticationProvider
来伪造身份验证(接受任何用户/pw组合)。谢谢,这似乎可以实现我自己的身份验证提供程序
<bean id="userService" class="com.ek.UserService" />
<authentication-manager alias="authenticationManager">
    <authentication-provider user-service-ref="userService" />
</authentication-manager>