认证配置详解
Config
package com.sangeng.config; import com.sangeng.filter.JwtAuthenticationTokenFilter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private JwtAuthenticationTokenFilter authenticationTokenFilter; @Bean public PasswordEncoder passwordEncoder(){ return new BCryptPasswordEncoder(); } @Override protected void configure(HttpSecurity http) throws Exception { /* http //关闭csrf .csrf().disable() //不通过Session获取SecurityContext .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and() .authorizeRequests() // 对于登录接口 允许匿名访问 .antMatchers("/user/login").anonymous() // 除上面外的所有请求全部需要鉴权认证 .anyRequest().authenticated();*/ http .csrf().disable() .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and() .authorizeRequests() .antMatchers("/hello").permitAll() .antMatchers("/user/login").anonymous() .anyRequest().authenticated(); http.addFilterBefore(authenticationTokenFilter, UsernamePasswordAuthenticationFilter.class); } @Bean @Override public AuthenticationManager authenticationManagerBean() throws Exception { return super.authenticationManagerBean(); } }
权限系统的作用
例如一个学校图书馆的管理系统,如果是普通学生登录就鞥看到借书还书的功能,不可能让他看到并且去使用添加书籍信息,删除书籍信息等功能,但是如果是一个图书馆的管理员的账号登录了,应该就能看到并使用添加书籍信息,删除书籍信息等功能
总结起来就是不同的用户可以使用不同的功能,这就是权限系统要去实现的效果
我们不能只依赖前端去判断用户的权限 来选择显示拿些菜单哪些按钮,因为如果是这样,如果有人知道了对应功能的接口地址,就可以不通过前端,直接去发送请求来实现相关功能操作
所以我们还需要子啊后台进行用户权限的判断,判断当前用户是否有相应的权限,必须基于所需权限才能进行相应的操作
标签:入门,springframework,SpringSecurity,详解,org,import,security,权限,annotation From: https://www.cnblogs.com/yu3304/p/17352143.html