Spring Boot的安全配置(一)

发布时间:2023-04-06 21:13:43     来源:腾讯云

Spring Boot是一个非常流行的Java开发框架,提供了各种实用的功能和组件来快速构建应用程序。安全是任何Web应用程序开发的关键方面,因为它涉及到用户的身份验证和授权。Spring Boot提供了一些安全功能来保护Web应用程序免受恶意攻击,包括身份验证、授权、加密、防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF)等。

本文将介绍Spring Boot的安全配置,包括身份验证和授权方面的详细文档和示例。


(资料图)

Spring Boot的安全配置

Spring Boot提供了许多安全功能,包括基于角色的访问控制、表单身份验证、HTTP Basic身份验证和OAuth 2.0身份验证等。这些功能可以通过Spring Security库来实现,它是Spring Boot的一部分,提供了许多可用的安全功能。

Spring Security的配置可以通过Java配置或XML配置来完成。Java配置更加灵活,可以提供更多的配置选项。XML配置则更加易于理解和管理。本文将使用Java配置来演示Spring Boot的安全配置。

配置基本身份验证

基本身份验证是一种最简单的身份验证方式,它使用用户名和密码来验证用户的身份。在Spring Boot中,可以使用HTTP Basic身份验证来实现基本身份验证。HTTP Basic身份验证使用Base64编码对用户名和密码进行编码,然后将它们放在HTTP请求的头部中。服务器端可以使用Spring Security的UserDetailsService接口来验证用户名和密码。

以下是使用Java配置实现基本身份验证的示例:

@Configuration@EnableWebSecuritypublic class SecurityConfig extends WebSecurityConfigurerAdapter {    @Autowired    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {        auth            .inMemoryAuthentication()            .withUser("user").password("password").roles("USER");    }    @Override    protected void configure(HttpSecurity http) throws Exception {        http            .authorizeRequests()                .anyRequest().authenticated()                .and()            .httpBasic();    }}

在上面的示例中,SecurityConfig类继承自WebSecurityConfigurerAdapter类,并使用@EnableWebSecurity注解启用Spring Security。configureGlobal()方法使用AuthenticationManagerBuilder来配置用户的用户名、密码和角色。在这个示例中,只有一个用户"user",密码为"password",角色为"USER"。

configure()方法配置HTTP请求的安全性,使用authorizeRequests()来指定哪些请求需要授权,使用httpBasic()来启用HTTP Basic身份验证。anyRequest().authenticated()表示所有请求都需要进行身份验证。

配置表单身份验证

表单身份验证是一种常见的身份验证方式,它使用Web表单来收集用户的用户名和密码。在Spring Boot中,可以使用`表单身份验证需要配置的比基本身份验证更多。以下是使用Java配置实现表单身份验证的示例:

@Configuration@EnableWebSecuritypublic class SecurityConfig extends WebSecurityConfigurerAdapter {    @Autowired    private DataSource dataSource;    @Override    protected void configure(AuthenticationManagerBuilder auth) throws Exception {        auth.jdbcAuthentication().dataSource(dataSource)                .usersByUsernameQuery("select username, password, enabled "                        + "from users "                        + "where username = ?")                .authoritiesByUsernameQuery("select username, authority "                        + "from authorities "                        + "where username = ?");    }    @Override    protected void configure(HttpSecurity http) throws Exception {        http.authorizeRequests()            .antMatchers("/admin/**").hasRole("ADMIN")            .antMatchers("/user/**").hasRole("USER")            .anyRequest().authenticated()            .and()            .formLogin()                .loginPage("/login")                .usernameParameter("username")                .passwordParameter("password")                .defaultSuccessUrl("/")                .permitAll()            .and()            .logout()                .logoutUrl("/logout")                .logoutSuccessUrl("/login")                .permitAll();    }}

在上面的示例中,SecurityConfig类继承自WebSecurityConfigurerAdapter类,并使用@EnableWebSecurity注解启用Spring Security。configure()方法使用AuthenticationManagerBuilder来配置数据库的用户信息。dataSource是一个javax.sql.DataSource对象,它提供了数据库连接信息。usersByUsernameQuery()authoritiesByUsernameQuery()分别查询用户信息和权限信息。

configure()方法使用HttpSecurity对象来配置HTTP请求的安全性。antMatchers()方法指定了哪些请求需要授权。.hasRole("ADMIN")表示只有具有"ADMIN"角色的用户才能访问"/admin/"路径。.hasRole("USER")表示只有具有"USER"角色的用户才能访问"/user/"路径。anyRequest().authenticated()表示所有请求都需要进行身份验证。

formLogin()方法指定了表单登录的页面和参数。.loginPage("/login")表示登录页面的路径为"/login"。.usernameParameter("username").passwordParameter("password")分别指定了用户名和密码的参数名。.defaultSuccessUrl("/")表示登录成功后跳转到根路径"/"。.permitAll()表示登录页面不需要进行身份验证。

logout()方法指定了注销的URL和成功注销后的跳转页面。.logoutUrl("/logout")表示注销URL为"/logout"。.logoutSuccessUrl("/login")表示注销成功后跳转到登录页面。.permitAll()表示注销页面不需要进行身份验证。

标签:

精彩推送

乘用车市场信息联席会发布数据 10月乘用车市场零售为184万辆

11月8日,乘用车市场信息联席会发布数据显示,今年前10个月乘用车市场零售达1671 6万辆,同比增长3%,...

2022-11-09

至正股份发布公告 拟1.19亿元收购苏州桔云51%股权

11月8日晚间,至正股份(603991)发布公告称,公司与SUCCESS FACTORS LIMITED签署了《购买资产协议》,...

2022-11-09

旅游合同暗藏猫腻 中消协点评这些属于不公平条款

11月8日,中国消费者协会官网发布《不公平格式条款点评系列九:旅游领域不公平格式条款点评》,其中针对...

2022-11-09

天键股份IPO排队近11个月 天键股份冲A胜算几何

在同行业企业迪芬尼、豪恩声学IPO告败后,电声产品制造商天键电声股份有限公司(以下简称天键股份)也向A...

2022-11-09

MSCI入摩“三步走” 三年MSCI主题基金不断涌现

自2019年11月8日,美国明晟公司(又称摩根士丹利资本国际公司,MorganStanleyCapitalInternational,以下...

2022-11-09

Spring Boot的安全配置(一)

SpringBoot是一个非常流行的Java开发框架,提供了各种实用的功能和组件来快速构建应用程序。安全是任何Web应用程序开发的关键方面,因为它涉及

广东率先破局“用地贵”:下放用地审批权限,“产业保障房”只租不售

广东率先破局“用地贵”:下放用地审批权限,“产业保障房”只租不售,广州,租赁,用地贵,广东省,工业用地,土地供应,产业保障房

滚动:住“握手楼”的咖啡阿姨 日盼夜盼盼来了征收

住“握手楼”的咖啡阿姨日盼夜盼盼来了征收,征收,陈瑜,弄堂,新居,咖啡,握手楼

全球百事通!【图解年报】通源环境:2022年归母净利润为4553万元,同比下降9.2%

通源环境于2023年4月7日披露年报,公司2022年实现营业总收入12 77亿元,同比增长32 7%;实现归母净利润4553万元,同比下降9 2%,降幅较去年同

公积金贷款买房,首付比例是多少?

公积金贷款买房,首付比例是多少?,买房,首付款,首付比例,公积金贷款,住房公积金,住房信贷政策

【当前独家】央视总台重量级报告,苏州上榜!

央视总台重量级报告,苏州上榜!,太湖,常州,江南,姑苏,央视,苏州市,中国中央电视台

云顶新耀肾病创新药上市申请在新加坡获受理 有望年内获批

4月6日,云顶新耀宣布,新加坡卫生科学局已正式受理Nefecon(耐赋康)的新药上市许可申请(NDA),用于治疗具有疾病进展风险的IgA肾病成人患者。云

全球热议:保荐工作存多项违规行为 国开证券及相关保荐人遭监管谈话

保荐工作存多项违规行为国开证券及相关保荐人遭监管谈话

大唐地产1-3月份合约销售额约40亿元

大唐地产1-3月份合约销售额约40亿元,张建,李铭,校对,房地产,大唐地产,合同销售面积

业绩快报:安达维尔2022年净利润-4581.54万 同比由盈转亏

安达维尔发布业绩快报,2022年实现营业总收入4 13亿元,同比下降13 23%;归属于母公司股东的净利润-4581 54万元,上年同期净利润为1042 57万元。

当前短讯!白云机场:3月旅客吞吐量同比增长127.17%

证券时报e公司讯,白云机场4月6日晚间公告,3月旅客吞吐量498 5万人次,同比增长127 17%;飞机起降架次3 79万架次,同比增长63 53%;货邮吞吐

每日视点!震有科技股东户数增加2.25%,户均持股25.88万元

震有科技最新股东户数8832户,低于行业平均水平。公司户均持有流通股份1 5万股;户均流通市值25 88万元。

又一地块征迁!签约正式启动!

又一地块征迁!签约正式启动!,搬迁,征收,征迁,不动产,使用证,所有权证

最新旧改规划公布!知识城北区,新盘很快要来了!

最新旧改规划公布!知识城北区,新盘很快要来了!,住宅区,创新园,复建房,旧改规划,知识城北区

天天新消息丨农业农村部部长唐仁健会见法国农业和粮食主权部部长费诺

【农业农村部部长唐仁健会见法国农业和粮食主权部部长费诺】4月6日,农业农村部部长唐仁健在京会见法国农业和粮食主权部部长费诺。唐仁健指出

商转公落地!沈五条横空出世,老破小再不卖就砸手里了?

商转公落地!沈五条横空出世,老破小再不卖就砸手里了?,房龄,房源,新房,住宅,沈阳,学区房,沈五条,万首付

焦点速讯:弘阳地产一季度合同销售73.13亿元,同比下滑62.52%

弘阳地产一季度合同销售73 13亿元,同比下滑62 52%,著作权,弘阳地产,合同销售面积

每日热闻!江苏淮安:税惠良方提信心 便民办税暖人心

为进一步贯彻落实“便民办税春风行动”,满足纳税人多样化个性化的办税需求,国家税务总局淮安市洪泽区税务局创新工作方法,依托大数据平台...

【图解年报】雪龙集团:2022年归母净利润下降66.9%,降幅超营收

雪龙集团于2023年4月7日披露年报,公司2022年实现营业总收入2 91亿元,同比下降38 5%,降幅较去年同期扩大;实现归母净利润4243万元,同比下降

全球今头条!正荣地产(06158.HK)一季度累计合约销售额47.87亿元

正荣地产(06158 HK)一季度累计合约销售额47 87亿元,正荣地产,合同销售面积

川金诺:2022年度净利润约3.47亿元 同比增加83.56%

川金诺(SZ300505,收盘价:23 18元)4月6日晚间发布年度业绩报告称,2022年营业收入约25 2亿元,同比增加64 07%;归属于上市公司股东的净利润约

多家房企公布业绩、南京大悦城主体建设启动、银泰商业何相国离任……

多家房企公布业绩、南京大悦城主体建设启动、银泰商业何相国离任……,宝龙,南京,何相国,大悦城,银泰商业,商业地产,阿里巴巴集团

【全球快播报】三年行动计划!日照提升房地产开发项目品质

三年行动计划!日照提升房地产开发项目品质,住宅,交房,商品房,房地产,日照市,商品住房

当前报道:产品力测评 | 克而瑞2023上半年 · 湖南区域正式启动

产品力测评|克而瑞2023上半年·湖南区域正式启动,克而瑞,湖南省,产品力测评

焦点热文:@顺德人!事关自建房,5月1日起实施→

@顺德人!事关自建房,5月1日起实施→,顺德,限额,自建房,水利局,建设方

视焦点讯!多措并举“花样”上演 演好老旧小区变形记

多措并举“花样”上演演好老旧小区变形记,游仙区,化粪池,变形记,老旧小区

景区大道_对于景区大道简单介绍

1、景区大道。2、是位于泰州市白马镇的道路。文章到此就分享结束,希望对大家有所帮助。

世界新动态:重磅!以后北京将再无“拆迁户”…

重磅!以后北京将再无“拆迁户”…,征收,宅基地,安置房,拆迁户,北京市

焦点播报:3月国内乘用车市场零售量同比持平 “价格战”未带来明显增量

4月6日,乘联会官网发布消息称,初步统计,3月1日~31日,国内乘用车市场零售量为159 6万辆,同比持平,较上月增长17%;厂商批发量为195 5万辆

每日速看!广元市剑阁县市场监管局暖心服务送上门 为企业解决难题

为激发市场主体活力,进一步优化营商环境,广元市剑阁县市场监管局主动作为,为剑阁县在建食品加工企业进行现场指导,为企业送服务、送政策上

皇家墨尔本理工大学生活怎么规划?如何提升留学幸福感?

第一次出国留学,陌生的墨尔本,很多都不懂怎么办?对于即将抵达皇家墨尔本理工大学的留学生们,应该提前规划留学生活,深度了解大学周边信

焦点速看:珠江股份15亿元中票将于4月13日兑付 票面利率为3.07%

本期债券简称“20粤珠江MTN002”,发行金额15亿元,票面利率为3 07%,期限3年,起息日为2020年4月13日,将于2023年4月13日本息兑付。

雅安市雨城区市场监督管理局召开“铁拳行动2023”工作安排部署会

为贯彻落实全国市场监管系统执法稽查工作会议暨2023民生领域案件查办“铁拳”行动部署会议精神,进一步加强重点领域市场监管执法,雅安市雨...

自然阳光直销获得不同领域专业机构认可,斩获多个奖项

随着大健康战略的推进和人民生活水平的不断提高,大众的健康意识显著增强,日常代谢管理的需求也随之增长。为了持续不断地为消费者带来更加健

环球热点!招商证券回应降薪:多维确定竞争力薪酬 业绩升则薪酬升、业绩降则薪酬降

招商证券(600999)在互动平台回应“降薪会不会影响公司经营”时表示,公司始终秉持市场化经营理念,在完善的公司治理机制下,由董事会依规制...

当前视讯!通知发布!淮安想提前还房贷注意了!

通知发布!淮安想提前还房贷注意了!,农商行,贷款人,淮安市,大运河,中国文物,提前还房贷,共同还款人,中国世界遗产

4月20日起实施!涉及东湖区、西湖区、青云谱区、青山湖区

4月20日起实施!涉及东湖区、西湖区、青云谱区、青山湖区,东湖区,安置房,青山湖区,青云谱区,安置小区,西湖区(南昌市)

简阳市2023年一季度食品安全“包保”工作顺利完成

按照国、省、成都市食安委工作要求,为建立健全末端发力终端见效工作机制,推动食品安全属地责任全面落实,简阳市各级各部门积极行动,扎实履

天天时讯:旭辉控股集团:前3月合同销售额约人民币211.3亿元

旭辉控股集团:前3月合同销售额约人民币211 3亿元,房地产,合同销售额,旭辉控股集团,合同销售面积

今日快讯:640名计算机“最强大脑”与“总教头”携手超越 上海交大ACM班成立20周年

640名计算机“最强大脑”、创办公司整体估值超千亿元……上海交通大学计算机科学班(ACM班)日前迎来成立20周年,成功经验曾连续三次获得国家...

天天新动态:儿童淡妆化妆步骤有哪些?淡妆主要需要的化妆品有哪些?

儿童淡妆化妆步骤淡妆主要需要的化妆品有:眉毛、腮红、睫毛膏、眼影、唇彩等,那么儿童淡妆又怎么化呢?下面小编给大家介绍儿童

天天要闻:怎样学习Photoshop绘图软件?学习Photoshop绘图软件的方法?

怎样学习Photoshop绘图软件Photoshop具有很强大的图片处理功能,在职场上被广泛应用,学好它可以作为一门本领

焦点速读:被子植物的开花过程是怎样的?被子植物的一生介绍?

中考生物知识点:被子植物的一生生物学是自然科学中的基础学科之一,是研究生命现象及其活动基本规律的科学。初中生物是理科中最

公司执行力培训心得体会怎么写?公司执行力培训心得体会包括哪些方面?

公司执行力培训心得体会(精选10篇)当我们积累了新的体会时,不妨将其写成一篇心得体会,让自己铭记于心,这样可以帮助我们分

世界动态:文言文三峡复习要点有哪些?《三峡》复习资料有哪些?

文言文三峡复习要点北魏郦道元的《三峡》,描写了三峡春、夏、秋、冬四季的美丽景色,是写景散文中的上乘之作。复习要点有哪些呢

电风扇怎么维修?电风扇维修技能有哪些?

电风扇维修技能大全文字像精灵,只要你用好它,它就会产生让你意想不到的效果。只要你能准确灵活的用好它,它就会让你的语言焕发

【播资讯】如何让你的答案更加出色?大学生村官面试技巧有哪些?

如何让你的答案更加出色大学生村官面试技巧在大学生村官考试面试中,如何从众多对手中杀出重围,脱颖而出,最终赢得考官的认可呢

天天热头条丨酒店安全管理包括哪些方面?酒店安全管理知识有哪些?

酒店安全管理(精选12篇)缺乏安全的酒店产品,不仅满足不了宾馆的基本需求,还会对宾馆的安全造成威胁,同时也会给酒店带来无

世界微动态丨爱的背后作文怎么写?爱的背后作文范文?

关于爱的背后作文三篇在生活、工作和学习中,大家都有写作文的经历,对作文很是熟悉吧,借助作文可以宣泄心中的情感,调节自己的

【世界时快讯】春节的趣事作文怎么写?春节的趣事作文范文?

春节的趣事作文四篇在日复一日的学习、工作或生活中,说到作文,大家肯定都不陌生吧,作文要求篇章结构完整,一定要避免无结尾作

精彩推荐