當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringSecurity集中式整合之授权操作
生活随笔
收集整理的這篇文章主要介紹了
SpringSecurity集中式整合之授权操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在啟動類中把加密對象放入IOC容器
@SpringBootApplication @MapperScan("com.leon.mapper") public class SecurityApplication {public static void main(String[] args) {SpringApplication.run(SecurityApplication.class, args);}@Beanpublic BCryptPasswordEncoder passwordEncoder(){return new BCryptPasswordEncoder();} }修改配置類
@Configuration @EnableWebSecurity @EnableGlobalMethodSecurity(securedEnabled=true) public class WebSecurityConfig extends WebSecurityConfigurerAdapter {@Autowiredprivate UserService userService;@Beanpublic BCryptPasswordEncoder passwordEncoder(){return new BCryptPasswordEncoder();}//指定認證對象的來源public void configure(AuthenticationManagerBuilder auth) throws Exception {auth.userDetailsService(userService).passwordEncoder(passwordEncoder());}//SpringSecurity配置信息public void configure(HttpSecurity http) throws Exception {http.authorizeRequests().antMatchers("/login.jsp", "failer.jsp", "/css/**", "/img/**", "/plugins/**").permitAll().antMatchers("/product").hasAnyRole("USER").anyRequest().authenticated().and().formLogin().loginPage("/login.jsp").loginProcessingUrl("/login").successForwardUrl("/index.jsp").failureForwardUrl("/failer.jsp").and().logout().logoutSuccessUrl("/logout").invalidateHttpSession(true).logoutSuccessUrl("/login.jsp").and().csrf().disable();} }大功告成盡管測試,注意還是用插件啟動項目,使用數據庫表中的用戶名和密碼。
整合實現授權功能
在啟動類上添加開啟方法級的授權注解
在產品處理器類上添加注解
要求產品列表功能必須具有ROLE_ADMIN角色才能訪問!
重啟項目測試
再次訪問產品列表發(fā)現權限不足
指定自定義異常頁面
編寫異常處理器攔截403異常
@ControllerAdvice public class HandleControllerException {@ExceptionHandler(RuntimeException.class)public String exceptionHandler(RuntimeException e){if(e instanceof AccessDeniedException){//如果是權限不足異常,則跳轉到權限不足頁面!return "redirect:/403.jsp";}//其余的異常都到500頁面!return "redirect:/500.jsp";} }再次測試產品列表就可以到自定義異常頁面了
總結
以上是生活随笔為你收集整理的SpringSecurity集中式整合之授权操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringSecurity集中式整合之
- 下一篇: SpringSecurity分布式整合之