恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

随记:springboot+spring-security

  • 首页
  • 资讯中心
  • /
  • 随记:springboot+spring-security

相关资讯

朴素贝叶斯在文本情感分析中的应用与优化 2026/8/2 17:53:51
计算机毕业设计之基于springboot的动漫在线视频平台的设计与实现 2026/8/2 17:53:52
计算机毕业设计之基于SpringBoot的动漫周边网站的设计与实现 2026/8/2 17:53:52

最新资讯

openai-agents-python Guardrail 实战指南:多智能体输入输出校验的 3 个卡口一次讲清
STM32硬件IIC通信从原理到实战:详解协议、配置与调试技巧
2026大模型技术趋势与面试宝典升级解析
如何用好skills4技能库:备课批改实操指南
灰度接口前 5 个请求熔断了 3 个,风控全拒:Sentinel 慢调用比例和最小请求数的 4 个坑
选对AI论文平台告别焦虑夜!实测好用清单 + 防坑指南

今日推荐

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定
WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化
如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南

本周热门

Nextcloud 桌面客户端:把同步交给它,你只管改文件
如何将 HTML 转成 Word 文档且格式不丢失?html-to-docx 使用教程
Anki 批量操作卡片完整指南:一次搞定上千张,不再逐张修改

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

随记:springboot+spring-security

发布时间:2026/8/24 22:49:04
随记:springboot+spring-security 该文章为备忘个人用packagecom.szq.le.config;importjava.util.ArrayList;importjava.util.Collection;importjava.util.List;importorg.mybatis.spring.annotation.MapperScan;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.boot.web.servlet.ServletComponentScan;importorg.springframework.boot.web.servlet.support.SpringBootServletInitializer;importorg.springframework.context.annotation.Bean;importorg.springframework.security.config.annotation.web.builders.HttpSecurity;importorg.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;importorg.springframework.security.core.GrantedAuthority;importorg.springframework.security.core.userdetails.UserDetails;importorg.springframework.security.core.userdetails.UserDetailsService;importorg.springframework.security.core.userdetails.UsernameNotFoundException;importorg.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;importorg.springframework.web.servlet.config.annotation.CorsRegistry;importorg.springframework.web.servlet.config.annotation.WebMvcConfigurer;SpringBootApplication(scanBasePackages{com.szq.le.controller,com.szq.le.service.impl,com.szq.le.springcomponent})ServletComponentScanMapperScan(com.szq.le.dao)publicclassAppConfigextendsSpringBootServletInitializerimplementsWebMvcConfigurer{BeanprotectedWebSecurityConfigurerAdaptergetWebSecurityConfigurerAdapter(){returnnewWebSecurityConfigurerAdapter(){Overrideprotectedvoidconfigure(HttpSecurity http)throwsException{http.csrf().disable().cors().and().formLogin();http.authorizeRequests().antMatchers(/api/fulladm/**).access(hasAnyRole({admin,user}) and isFullyAuthenticated());http.authorizeRequests().antMatchers(/api/adm/**).access(hasAnyRole({admin,user,abc}) and isFullyAuthenticated());http.authorizeRequests().antMatchers(/api/fullauth/**).fullyAuthenticated();http.authorizeRequests().antMatchers(/api/auth/**).authenticated();http.authorizeRequests().antMatchers(/**).permitAll();//重要这里是CAS认证的配置入口http.exceptionHandling().authenticationEntryPoint(null);}};}BeanprotectedBCryptPasswordEncodergetBCryptPasswordEncoder(){returnnewBCryptPasswordEncoder();}BeanprotectedUserDetailsServicegetUserDetailsService(BCryptPasswordEncoder getBCryptPasswordEncoder){returnnewUserDetailsService(){OverridepublicUserDetailsloadUserByUsername(String username)throwsUsernameNotFoundException{returnnewUserDetails(){privatestaticfinallongserialVersionUID1L;OverridepublicbooleanisEnabled(){returntrue;}OverridepublicbooleanisCredentialsNonExpired(){returntrue;}OverridepublicbooleanisAccountNonLocked(){returntrue;}OverridepublicbooleanisAccountNonExpired(){returntrue;}OverridepublicStringgetUsername(){returnadmin;}OverridepublicStringgetPassword(){String sgetBCryptPasswordEncoder.encode(passw0rd);System.out.println(s);returns;}OverridepublicCollection?extendsGrantedAuthoritygetAuthorities(){ListGrantedAuthoritylistnewArrayList();list.add(newGrantedAuthority(){privatestaticfinallongserialVersionUID1L;OverridepublicStringgetAuthority(){returnROLE_abc;}});returnlist;}};}};}OverridepublicvoidaddCorsMappings(CorsRegistry registry){registry.addMapping(/**).allowedOrigins(*);}}有几个点需要注意.formLogin()后面有各种方法各种handler可以实现各种各样的扩展。自定义返回成功后的功能就在这里扩展。BCryptPasswordEncoder必须得配置一个还有其他几个encoder可以用一般情况下使用这个也就够了。UserDetailsService必须得配置一个这里是最主要的扩展点在这里可以自己实现各种各样的获取用户信息的功能不管是从数据库还是从缓存获取。通过自定义这个bean就不必使用spring-security自带的那个数据库获取用户信息的功能了。如果是使用cas之类的认证则**http.exceptionHandling().authenticationEntryPoint(null);**方法是配置认证入口的方法。原创不易转帖请注明出处 — ShiZhongqi

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号