• 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容器。

  • 相关阅读:
    SparkR初体验2.0
    R语言数据集合并、数据增减、不等长合并
    采坑复盘:logging日志能用封装后的函数来打日志,发现filename一直显示封装logging函数的方法所在的文件名
    flask实战-个人博客-编写博客前台
    flask实战-个人博客-电子邮件支持
    linux虚拟机获取不到ip的解决方法 --
    flask实战-个人博客-视图函数
    flask实战-个人博客-表单
    flask实战-个人博客-模板 --
    flask实战-个人博客-数据库-生成虚拟数据 --
  • 原文地址:https://www.cnblogs.com/lin7155/p/13758015.html
Copyright © 2020-2023  润新知