我知道有很多主题,但有没有办法修改普通的spring安全性来处理json对象。
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true) //za pre i post authorize v servisa
public class SpringSecurityConfig extends WebSecurityConfigurerAdapter
{
//Koi service shte polzvame
@Autowired
private UserService userService;
@Override
protected void configure(HttpSecurity http) throws Exception
{
http.authorizeRequests()
.antMatchers("/", "/user/register", "/css/**", "/js/**").permitAll()
.antMatchers("/user/user").access("hasRole('USER') or hasRole('ADMIN')")
.antMatchers("/user/admin").hasRole("ADMIN")
.anyRequest().authenticated()
.and()
.formLogin().loginPage("/user/login").permitAll()
.usernameParameter("username")
.passwordParameter("password")
.and()
.rememberMe().rememberMeCookieName("RememberMeFromLecture")
.rememberMeParameter("remember")
.key("golqmaTaina")
.and()
.logout().logoutSuccessUrl("/user/login?logout").logoutRequestMatcher(new AntPathRequestMatcher("/signout")).permitAll()
.and()
.exceptionHandling().accessDeniedPage("/user/unauthorized")
.and().csrf().disable();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception
{
auth.userDetailsService(this.userService).passwordEncoder(getBCryptPasswordEncoder());
}
@Bean
public BCryptPasswordEncoder getBCryptPasswordEncoder()
{
return new BCryptPasswordEncoder();
}
}
这是我的配置文件,它可以在没有休息的情况下完美运行,但我的问题只是想让登录页面与所有人一起休息。如果它是这样的配置,我的登录已经自动完成,我甚至无法在我的控制器内设置断点。它有效,但我想让它休息一下。
答案 0 :(得分:1)
我创建了一个示例应用程序(https://github.com/manishsingh27/TokenBasedAuth),它基于REST进行身份验证。
客户端应用程序基于AngularJS,它有登录页面,文件在这里 - https://github.com/manishsingh27/TokenBasedAuth/tree/main/authz/src/main/resources/static。
此处还有REST API - https://github.com/manishsingh27/TokenBasedAuth/blob/main/authz/src/main/java/com/adms/authz/self/user/controller/UsersController.java。
配置文件在这里 - https://github.com/manishsingh27/TokenBasedAuth/blob/main/authz/src/main/java/com/adms/authz/config/SecurityConfiguration.java
您需要使用@EnableResourceServer批注来保护Rest API。