SpringBoot安全

8 篇文章 0 订阅
2 篇文章 0 订阅

如果Spring Security在classpath中,那么web应用默认对所有的HTTP端点使用’basic’认证。为了给web应用添加方法级别(method-level)的安全性,你还可以添加@EnableGlobalMethodSecurity和你想要的设置,额外的信息可以在Spring Security Reference中找到。

默认的AuthenticationManager只有一个单独的用户(用户名为’user’并且密码为随机密码,会在应用启动时在INFO级别打印出来)

Using default security password: 474dcc50-1a68-400e-af74-0b9494e312fa

如果你对日志配置进行调整,确保org.springframework.boot.autoconfigure.security类别设置为记录INFO消息,否则默认的密码不会被打印。

你可以通过提供一个security.user.password来更改密码,这个和其他有用的属性通过SecurityProperties(以”security”为前缀的属性)被外部化了(外部化的文件在application.properties或application.yml中)。

默认的安全配置在SecurityAutoConfiguration和从那里导入的类中实现(SpringBootWebSecurityConfiguration用于web安全,AuthenticationManagerConfiguration可用于非web应用的身份验证配置)。你可以添加一个使用@EnableWebSecurity注解的bean,完全关闭Web应用程序默认的安全配置(这并不会禁用身份验证管理器配置或Actuato的安全性)。你通常需要使用外部的属性配置和WebSecurityConfigurerAdapter类型的beans来自定义它(比如,添加基于表单的登陆)。 也关闭身份验证管理器的配置,你可以添加一个AuthenticationManager类型的bean,要不然在你一个@Configuration类的某个方法里,自动装配一个AuthenticationManagerBuilder来配置全局的AuthenticationManager。这是 Spring Boot示例。

在web应用中你能得到的开箱即用的基本特性如下:

  • 一个使用内存存储的AuthenticationManager bean和一个单独的用户(user的属性可以查看SecurityProperties.User)。
  • 忽略(无保护的)常见的静态资源位置(/css/, /js/, /images/,/webjars/和 **/favicon.ico)。
  • 为其他所有的端点进行HTTP Basic安全保护。
  • 安全相关的事件会发布到Spring的ApplicationEventPublisher(成功和失败的认证,拒绝访问)。
  • Spring Security提供的常见底层特性(HSTS, XSS, CSRF, 缓存)默认都被开启。

上述所有特性都能通过外部属性配置(security.*)打开,关闭,或修改。想要覆盖访问规则而不改变其他自动配置的特性,你可以添加一个带@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)注解的WebSecurityConfigurerAdapter类型的@Bean。

WebSecurityConfigurerAdapter默认会匹配所有路径,如果不想完全覆盖Spring Boot自动配置的访问规则,你可以明确的配置你想要覆盖的路径。

外部属性配置SECURITY PROPERTIES
security.basic.authorize-mode=role # Security authorize mode to apply.安全授权模式应用
security.basic.enabled=true # Enable basic authentication.启用basic身份验证
security.basic.path=/** # Comma-separated list of paths to secure.以逗号分隔的路径列表保护
security.basic.realm=Spring # HTTP basic realm name.HTTP基础域名
security.enable-csrf=false # Enable Cross Site Request Forgery support.启用跨站点请求伪造支持
security.filter-order=0 # Security filter chain order.安全过滤器链顺序
security.filter-dispatcher-types=ASYNC, FORWARD, INCLUDE, REQUEST # Security filter chain dispatcher types.安全过滤器链调度器类型
security.headers.cache=true # Enable cache control HTTP headers.启用缓存控制HTTP头
security.headers.content-security-policy= # Value for content security policy header.内容安全策略头值
security.headers.content-security-policy-mode=default # Content security policy mode.内容安全策略模式
security.headers.content-type=true # Enable "X-Content-Type-Options" header.启用"X-Content-Type-Options"头
security.headers.frame=true # Enable "X-Frame-Options" header.启用 "X-Frame-Options" 头。
security.headers.hsts=all # HTTP Strict Transport Security (HSTS) mode (none, domain, all).HTTP严格传输安全(HSTS)模式(none, domain, all)
security.headers.xss=true # Enable cross site scripting (XSS) protection.启用跨站脚本攻击(XSS)保护
security.ignored= # Comma-separated list of paths to exclude from the default secured paths.从默认的安全路径排除以逗号分隔的路径
security.require-ssl=false # Enable secure channel for all requests.为所有请求启用安全通道
security.sessions=stateless # Session creation policy (always, never, if_required, stateless).Session创建策略(always, never, if_required, stateless)
security.user.name=user # Default user name.默认的用户名
security.user.password= # Password for the default user name. A random password is logged on startup by default.默认用户名的密码,启动时默认登录使用随机密码。
security.user.role=USER # Granted roles for the default user name.授予默认用户名的角色
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
## 介绍 使用 spring boot,基于 ssm 框架和 shiro 安全框架,开发的一个物流管理系统。前端使用的是 H-ui 开源框架,运用了 Bootstrap table、zTree、PageHelper、jQuery validate 等插件。 ## 特点 1. 基于 spring boot、maven 构建; 2. 运用了 springspring mvc、mybatis 和 shiro 框架; 3. 采用了 RBAC 的思路设计系统,采用了 Mysql 作为数据库支持; 4. 不同的角色登录系统会有不同的菜单列表,且会根据角色返回特定的数据; 5. 拥有基础数据管理模块,管理员管理模块,角色管理模块,权限管理模块,客户管理模块,订单管理模块和业务处理模块; 6. 能够实现完整的业务流程:加客户、加订单、订单处理、财务报表。 ## 细节介绍 1. 业务员访问时,只能访问客户管理、订单管理、业务处理菜单,且只有加的权力,没有修改和删除的权力; 2. 业务员加订单时,只能基于自己拥有的客户加; 3. 业务经理拥有客户管理、订单管理、业务处理的所有功能,可以查看所有业务员的客户和订单; 4. 总经理角色可以查看所有数据,但是没有修改的权力; 5. 仓管员只有业务处理中,测量物品信息和入库的功能,其他数据不可修改; 6. 财务可以查看审核订单价格详情并导出为 excel 表格。 -------- <项目介绍> 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值