springboot 信息整合

基础配置

debug=true 打印日志,可以指定默认加载的自动配置类,非常有用。

spring开发者工具

自动重启

修改某些文件后,会触发程序自动重启

spring.devtools.restart.exclude

spring.devtools.restart.enable

spring.devtools.restart.trigger-file: //设置触发文件,只有修改设置的触发文件后才能重启

LiveReload支持

不要手动刷新页面

spring.devtools.livereload.enabled

远程开发

spring.devtools.remote.secret

spring boot中静态文件的优先级

resources > static >public > /**

spring.mvc.static-pattern 设置静态路径

日志配置
springboot 默认的日志是 logback
如果想要其他的日志框架,要排除自身的框架

任务

任务调度器和异步调度器 Quartz工具

异步任务 @EnableAsync @Async

定时任务 @EnableScheduling @Scheduled cron表达式

邮件任务 spring-boot-starter-mail JavaMailSenderImpl 邮件发送器 执行send方法发送邮件

spring Email的核心是 JavaMailSender 接口
spring有该接口的实现类,JavaMailSenderImpl,需要配置邮件发送器,默认监听端口是25
发送邮件,邮件的实现类之一SimpleMailMessage

检索

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。

监控管理

spring-boot-starter-actuator 准生产环境监控

management.security.enable=false

localhost:port/监控端点 监控端点[ beans,health, info,mappings,dump ,env ,autoconfig,auditevents ,configpros ,trace]等

endpoints 结点可以定制端点,修改端点属性,配置文件修改。

开发热部署
添加图片验证功能

使用谷歌的 com.google.code.kaptcha.impl.DefaultKaptcha

整合shiro

authentication ,authorization ,session mangement ,cryptography
认证 授权 会话管理 加密

ShiroFilterFactoryBean
DefaultAdvisorAutoProxyCreator 开启shiro注解
AuthorizationAttributeSourceAdvisor

org.apache.shiro.SecurityUtils;//shiro自带的工具类
org.apache.shiro.session.Session;

Subject:主体,可以看到主体可以是任何可以与应用交互的“用户”;

SecurityManager :
FilterDispatcher:是 Shiro 的心脏;所有具体的交互都通过 SecurityManager 进行控制;它管理着所有 Subject、且负责进行认证和授权、及会话、缓存的管理。
Authenticator:认证器,负责主体认证的,这是一个扩展点,如果用户觉得 Shiro 默认的不好,可以自定义实现;其需要认证策略(Authentication Strategy),即什么情况下算用户认证通过了。

Authrizer:授权器,或者访问控制器,用来决定主体是否有权限进行相应的操作;即控制着用户能访问应用中的哪些功能。

Realm:可以有 1 个或多个 Realm,可以认为是安全实体数据源,即用于获取安全实体的;可以是 JDBC 实现,也可以是 LDAP 实现,或者内存实现等等;由用户提供;注意:Shiro不知道你的用户/权限存储在哪及以何种格式存储;所以我们一般在应用中都需要实现自己的 Realm。

SessionManager:

spring security

@EnableWebSecurity @EnableWebMvcSecurity 两个注解启用安全配置,配置在注解类上。

WebSecurityConfigurerAdater 安全配置的注解类要继承WebSecurityConfigurerAdater

安全设置要覆盖超类的三个方法。

configure(WebSecurity) 通过重载,配置spring security的filter链

configure(HttpSecurity) 配置页面的权限

configure(AuthenticationManagerBuilder) 配置用户的权限数据

configure(AuthenticationManagerBuilder)

存储用户权限数据

  1. 方式1 直接使用,使用inMemoryAuthentication() 方法
  2. 方式2 使用数据库方式,jdbcAuthentication()方法 如果密码设置了加密,需要借助passwordEncoder指定一个密码转换器转换密码
  3. 方式3 基于LDAP进行认证 ldapAuthentication()方法, 远程服务器需要使用contextSource方法,指定远程地址
  4. 方式4 使用自配置的用户存储,需要自定义一个UserDetailsService接口实现,借助同名的方法设置,用非关系型数据库存储用户权限设置。

configure(HttpSecurity) 配置页面的权限

可以使用方法,或者SPEL表达式,或者使用强制通道安全,及使用HTTPS验证,这里需要用到的方法是requiresChannel()方法。

实现方法级别上的安全性

使用注解保护方法

  1. Spring security自带的 @Secured注解
  2. JSR-250 的@RolesAllowed注解
  3. 表达式取代的注解,包括@PreAuthorize @PostAuthorize @PreFilter @PostFilter

以上这些注解是在方法级别上的注解

开始这些注解,需要在配置类上,添加 @EnableGlobalMethodSecurity(securedEnable=true,jsr250Enable=true,prePostEnable=true)

配置类可以扩展 GlobalMethodSecurityConfiguration 这个配置类,自定义安全行为

读取微软文档

Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。

远程服务
测试
  1. Spring Mock MVC:能在一个近似真实的模拟Servlet环境下进行测试
  2. Web集成测试
  3. 模块测试框架 JUnit
  4. 测试整合框架 Unitils

数据库测试框架 Dbunit ;使用excel表格进行测试

需要验证的测试,spring security提供了两个注解 @WithMockUser @WithUserDetails

@WebIntegrationTest 声明spring boot为测试创建应用上下文,还要启动一个嵌入式的servlet容器。

原文地址:https://www.cnblogs.com/lin7155/p/13758015.html