gpt4 book ai didi

java - 从 Spring Security 访问 Spring MVC 服务

转载 作者:行者123 更新时间:2023-11-29 09:00:35 24 4
gpt4 key购买 nike

我正在使用 Spring 3 并尝试在用户登录后从数据库中填充 Spring Security Authentication bean 的权限。

我有一个用于访问数据库的服务,例如

@Service
public class UserService {
public User getUser(String username){...}
}

正常情况下,我可以@Autowire这个服务,但是因为Authentication bean是Spring Security创建的,所以好像访问不了这个服务。我也尝试使用 ApplicationContextAware 接口(interface),但 Spring Security 似乎有一个单独的 ApplicationContext

我可以通过 getUserPrincipal() 从 MVC 访问 Authentication bean,但是有什么方法可以从 Spring Security 身份验证中的某个地方访问这个 @Service 吗?

最佳答案

我不确定你的设置是什么或你想做什么,但我会尝试根据基本的 spring-security 设置来帮助你。

首先,您的 UserService 应该实现 UserDetailsService

在你的 web.xml 中

<!-- Context Configuration locations for Spring XML files -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:META-INF/spring/some-application-service.xml
/WEB-INF/security.xml
</param-value>
</context-param>

/WEB-INF/security.xml

<!-- 
Assuming UserService is in com.sample.security package.
-->
<context:component-scan base-package="com.sample.security"/>
<authentication-manager>
<authentication-provider user-service-ref="userService" />
</authentication-manager>

关于java - 从 Spring Security 访问 Spring MVC 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17751115/

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