(授权已经在存储库中使用@preauthorize(“hasrole('role_user')”)
完成)
@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
/**
* This section defines the user accounts which can be used for
* authentication as well as the roles each user has.
*/
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("greg").password("turnquist").roles("USER").and()
.withUser("ollie").password("gierke").roles("USER", "ADMIN");
}
/**
* This section defines the security policy for the app.
* - BASIC authentication is supported (enough for this REST-based demo)
* - /employees is secured using URL security shown below
* - CSRF headers are disabled since we are only testing the REST interface,
* not a web one.
*
* NOTE: GET is not shown which defaults to permitted.
*/
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.httpBasic().and()
.authorizeRequests()
.antMatchers(HttpMethod.POST, "/employees").hasRole("ADMIN")
.antMatchers(HttpMethod.PUT, "/employees/**").hasRole("ADMIN")
.antMatchers(HttpMethod.PATCH, "/employees/**").hasRole("ADMIN").and()
.csrf().disable();
}
}
这里有一个关于spring boot中JWT身份验证的很好的教程,但也适用于spring应用程序:https://auth0.com/blog/implementing-jwt-authentication-on-spring-boot/
根据您需要的SecurityConfiguration.Configure中的教程
http.authorizeRequests()
.anyRequest().authenticated()
.and()
.addFilter(new JWTAuthenticationFilter(authenticationManager()))
.addFilter(new JWTAuthorizationFilter(authenticationManager()))
// this disables session creation on Spring Security
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
JWTauthEnticationFilter
扩展UsernamePasswordAuthenticationFilter
,应用于/login URL,如果系统中存在这样的用户,则根据您的登录名/密码生成JWT令牌。
jwtauthorizationfilter
验证http标头中的JWT令牌
当然,您需要添加更多的运动部件,以便在本教程中启用JWT auth。
我有一个spring boot应用程序,我正在尝试使用spring数据cassandra连接到cassandra数据库。下面是我的文件。 样品pp.java CassandraDataSourceConfig。JAVA 属性文件 下面是我尝试使用嵌入式tomcat服务器启动应用程序时遇到的异常(mvn spring boot:run)。应用程序无法加载无法自动连接字段的投诉:private jav
我有一个类,它返回一个<代码>列表 在我的存储库中,我有一个可分页对象,它应该从第0页开始每页返回2个项目。它具有以下属性: 然后我创建一个页面 ... 这就是回归的原因: 我通过
我正在寻找一个选项来执行Redis BITOP使用Spring redistemplate。我试着在网上搜索一个例子,但找不到任何类似的东西。我能够从JedisStringCommands类获得bitOp函数,但不确定如何使用它。
我的项目中有两个域对象,和。s分别与单个相关联。我正在使用Spring-Data-Rest,它是抽象,所以我有这个: 当我通过HTTP获取时,我会得到这个: 但是,我不能将相同的内容发回以首先创建文档。我发现最好的办法是发布以下内容: 然而,这似乎真的很奇怪,因为: a) 现在,我在对象中嵌入了一个未命名、未类型化的链接,这不是很HATEAOS(尽管Spring似乎正确地反序列化了它)。 b)我现
我正在配置elasticsearch spring应用程序,并遵循我创建的RestHighLevelClient文档: 现在我希望我所有的文档都有snake_case的命名策略,在文档上这是我发现的: 在没有进一步配置的情况下,Spring Data Elasticsearch将使用对象的属性名称作为Elasticsearch中的字段名称。这可以通过使用该属性上的@Field注释来更改单个字段。
我在OpenJFX中使用Spring JPA。这个项目是JavaFX weaver,只需在pom中添加spring启动数据jpa。 然而,我的Spring JPA的开始时间是15-20秒,在Spring初始化之前,UI不会显示。当用户启动应用程序时,每次都要花很多时间! 作为一种解决方法,我尝试创建一个没有Spring的简单java fx应用程序(在这里使用这个演示),然后从main方法开始,通过