gpt4 book ai didi

Spring REST 应用程序中安全约束的 Java 配置

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:05:36 25 4
gpt4 key购买 nike

我正在使用 Spring REST(没有 web.xml)构建一个应用程序。 REST 调用工作正常,但我需要添加一些安全约束,这些约束很容易通过 web.xml 添加,但因为我使用的是没有 web.xml 的 Spring 4,所以我需要帮助通过 Java 配置添加 web.xml 部分。

我的web.xml:

<security-role>
<role-name>all</role-name>
</security-role>
<security-constraint>
<web-resource-collection>
<web-resource-name>test</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>all</role-name>
</auth-constraint>
</security-constraint>


我在通过 Java 配置配置此 web.xml 时需要帮助。可能这可以通过 Spring Security 添加,但不确定如何添加。

最佳答案

这就是您可以使用@Configuration 并覆盖 WebSecurityConfigurerAdapter 类的配置方法并使用自定义约束实现安全性的方法。

 @Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {


@Autowired
DataSource datasource;
Logger logger = LoggerFactory.getLogger(getClass());

@Override
protected void configure(HttpSecurity http) throws Exception {

http.httpBasic().and().authorizeRequests().antMatchers("/public/**")
.permitAll().antMatchers("/admin/**").hasAuthority("admin")
.antMatchers("/user/**").hasAuthority("user")
.and()
.logout()
// Logout requires form submit. Bypassing the same.
.logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
.logoutSuccessUrl("/index.html").and()
.addFilterAfter(new CsrfHeaderFilter(), CsrfFilter.class)
.csrf().disable();

}
}

关于Spring REST 应用程序中安全约束的 Java 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38236057/

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