Java Spring登录并提供任何详细信息
在Spring中,有人知道实现用户服务或身份验证提供者的方法吗?该服务或身份验证提供者将在登录时接受任何用户 这是我上一个问题的补充: 我在spring ws项目中有一个基本的安全设置: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
<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>