- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 spring-boot (使用 JWT 和 spring security ),并且我在 spring-boot 中有一个类 configSecurity ,代码如下:
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable();
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
http.authorizeRequests().antMatchers("/login/**").permitAll();
http.authorizeRequests().antMatchers(HttpMethod.GET,"/ListProjects/**").hasAuthority("ADMIN");
http.authorizeRequests().anyRequest().authenticated()
.and()
.exceptionHandling().authenticationEntryPoint(authenticationEntryPoint());
http.authorizeRequests().antMatchers(HttpMethod.OPTIONS, "/**").permitAll(); //allow CORS option calls
http.addFilter(new JWTAuthenticationFilter(authenticationManager()));
http.addFilterBefore(new JWTAutorizationFilter(), UsernamePasswordAuthenticationFilter.class);
}
还有一个类:JWTAuthenticationFilter.java,其中包含构造函数:
@Autowired
public JWTAuthenticationFilter(AuthenticationManager authenticationManager)
{
this.authenticationManager = authenticationManager;
}
我的目标是更改 securityConfig 中的行:
http.addFilter(new JWTAuthenticationFilter(authenticationManager()));
像这样的事情:
http.addFilter(jwtAuthenticationFilter.SetJWTAuthenticationFilter(authenticationManager());
所以我在 SecurityConfig 类中添加了注释 @Autoweird ,如下所示:
@Autowired
private JWTAuthenticationFilter jwtAuthenticationFilter;
所以我不知道如何在 JWTAuthenticationFilter.java 中创建这个方法,我做了这样的事情:
@Autowired
public JWTAuthenticationFilter SetJWTAuthenticationFilter(AuthenticationManager authenticationManager) {
this.authenticationManager = authenticationManager;
return // (1)
}
(1):那么在这种情况下我应该返回什么?我不想使用像 new JWTAuthenticationFilter () 这样的东西..,有什么想法吗?或者我没有以正确的方式这样做..?
编辑
添加这些更改后,我无法对用户进行身份验证,因此无法获取每个用户的 token ,我认为问题出在我添加的新类上,它实现了一个返回 null 的方法
import org.springframework.context.annotation.Configuration;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.AuthenticationException;
@Configuration
public class CustomAuthManager implements AuthenticationManager {
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
return null;
}
}
有什么想法吗?
最佳答案
那部分代码
@Autowired
public JWTAuthenticationFilter(AuthenticationManager authenticationManager) {
this.authenticationManager = authenticationManager;
}
意味着如果您将 JWTAuthenticationFilter
创建为 Spring 组件(不是通过调用 new
),AuthenticationManager
将自动连接到该类中,并且您不需要运行任何类型的 setter 。
您的 authenticationManager()
方法正在做什么?如果您只是创建 AuthenticationManager
的新 @Bean
,您可以在单独的类中执行它,它将自动连接到 JWTAuthenticationFilter
。
可能的解决方案:
1.创建类:
@Configuration
public class CustomAuthManager implements AuthenticationManager {
...
}
2.添加到SecurityConfig
:
@Autowired
private JWTAuthenticationFilter jwtAuthenticationFilter;
并使用http.addFilter(jwtAuthenticationFilter);
3. 保持JWTAuthenticationFilter
不变。
关于java - 如何在 SecurityConfig.java 中使用 setter 代替 New JWTAuthenticationFilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50409649/
我正在尝试使用 Spring Security,所有这些都使用一个角色。 protected void configure(HttpSecurity http) throws Exception {
我是 Spring 新手,正在尝试使用 Spring 为 RESTful API 创建身份验证。我收到以下错误,如何解决此问题? 堆栈跟踪: Error creating bean with name
我正在尝试使用 Spring Security,所有这些都使用一个角色。 我想根据角色重定向到2个不同的站点,但框架始终重定向到最后一个defaultSuccessUrl("/...")**。这可能吗
我创建了一个基于 this tutorial 的小型网络应用程序。原始版本按预期工作。然后我做了一些更改,它停止工作,也就是说我可以在不登录的情况下访问/hello 页面。我正在学习这个神奇的自动配置
我有一个运行 Jersey Spring 调度程序的应用程序,我想与 Spring Security 集成。我可以让它与命名空间配置一起使用——即在 web.xml 中包含过滤器并使用 和 bean
过去几天我一直面临着 j_spring_security_check 的 404 错误,我想我能解决这个问题。我已经阅读了与此问题相关的几个堆栈溢出问题,但似乎没有什么可以改变结果。我希望有人能够发现
我尝试使用本教程通过 jwt token 创建身份验证:https://www.callicoder.com/spring-boot-spring-security-jwt-mysql-react-a
我在 web.xml 中遇到了这段代码,但我不明白如何添加 securityConfig.xml与 dispatcherContext.xml 一起添加到类路径 contextConfigLo
我正在为一个仍然使用 Acegi 插件(而不是较新的 Spring Core Security 插件)的项目编写测试用例,截至目前,我已经成功完成了本网站的工作(http://www.zorched.
在 webapp 本身中,一切运行都没有任何问题。身份验证按预期工作。但是,由于我的类路径上有 Spring Security,我所有的 Controller 测试现在都失败了,因为正在加载默认的 S
我正在使用 spring-boot (使用 JWT 和 spring security ),并且我在 spring-boot 中有一个类 configSecurity ,代码如下: @Configur
我已经有一个基于 XML 的 Spring 应用程序。我被要求将 Spring Security 集成到其中。我想使用基于 Java 的配置。我已经按照此处的说明对其进行了初始化:Java Confi
我正在尝试结合 Java-config 和 xml-config 进行 spring 安全认证。但是我收到一个错误: Error creating bean with name 'securityCo
'org.springframework.security.access.SecurityConfig':通过构造函数参数 0 表示的不满足的依赖关系:没有 [java.lang.String] 类型
我试图让 Spring SecuirtyConfig 与 Spring MVC 和 JavaConfig 一起工作,但我收到以下错误: java.lang.IllegalStateException:
奇怪的问题在这里。我的模板gsp中有一个sec:ifNotLogged in标记,它失败并显示以下错误/堆栈跟踪。但是,如果删除标签以便可以登录,然后在登录后再添加回标签,则可以正常工作。我有一个扩展
我正在做图书馆管理系统的 spring boot 安全应用。当我运行我的应用程序时,出现上述错误。有人可以帮帮我吗?提前致谢! //安全配置 @Configuration @EnableWebSecu
当我运行网络应用程序时,我遇到此错误: SEVERE: Context initialization failed org.springframework.beans.factory.BeanCrea
我是一名优秀的程序员,十分优秀!