随记: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

相关新闻

免费开源视频编辑器Avidemux2:跨平台剪辑解决方案完整指南

免费开源视频编辑器Avidemux2:跨平台剪辑解决方案完整指南

免费开源视频编辑器Avidemux2:跨平台剪辑解决方案完整指南 【免费下载链接】avidemux2 Avidemux2, simple video editor 项目地址: https://gitcode.com/gh_mirrors/avi/avidemux2 Avidemux2是一款功能强大的开源视频编辑器,为Linux、Windows和ma…

2026/10/24 4:38:12 阅读更多 →
终极OpenCore安装指南:5步打造稳定黑苹果系统

终极OpenCore安装指南:5步打造稳定黑苹果系统

终极OpenCore安装指南:5步打造稳定黑苹果系统 【免费下载链接】OpenCore-Install-Guide Repo for the OpenCore Install Guide 项目地址: https://gitcode.com/gh_mirrors/op/OpenCore-Install-Guide OpenCore是一款专业的macOS引导加载器,专为在…

2026/10/30 17:58:03 阅读更多 →
Claude Opus ARC-AGI-3突破:从记忆型到推理型AI的智能评估转向

Claude Opus ARC-AGI-3突破:从记忆型到推理型AI的智能评估转向

上周,当 Claude Opus 在 ARC-AGI-3 基准上达到新的 SOTA(State-of-the-Art)成绩时,我并没有感到意外。真正让我停下来思考的,是这条消息背后一个更根本的变化:我们可能正在见证通用人工智能评估方式的一次重…

2026/10/29 22:57:07 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/31 0:19:11 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/30 9:20:34 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/30 10:19:21 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/31 0:59:28 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/30 10:19:39 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/30 9:21:37 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/30 17:32:24 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/30 10:28:40 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/31 0:09:01 阅读更多 →