zoukankan      html  css  js  c++  java
  • Spring Boot集成Jasypt安全框架

    Jasypt安全框架提供了Spring的集成,主要是实现

    PlaceholderConfigurerSupport类或者其子类。

    在Sring 3.1之后,则推荐使用PropertySourcesPlaceholderConfigurer类作为属性替换配置类,这里Spring集成Jasypt则使用Jasypt对属性替换配置类的实现。EncryptablePropertySourcesPlaceholderConfigurer。

    在Spring中集成比较容易,而且Jasypt官方也给出了配置Bean的方式和使用Jasypt标签的XML方式,而Spring boot集成就稍微有点不一样,需要创建一个自动配置类,并且创建一个注入PlaceholderConfigurerSupport的jasypt实现了的Bean .

    下面是一个使用示例:

    import org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
    import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
    import org.jasypt.spring31.properties.EncryptablePropertySourcesPlaceholderConfigurer;
    import org.springframework.boot.autoconfigure.AutoConfigureOrder;
    import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
    import org.springframework.boot.autoconfigure.condition.SearchStrategy;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
    import org.springframework.core.Ordered;
    import org.springframework.core.io.ClassPathResource;
    
    /**
     * Author : secondriver
     * Date   : 2016/5/26
     */
    @Configuration
    @AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE)
    public class EncryptPropertyPlaceholderAutoConfiguration {
    
        private static final String SECURITY_PROPERTIES_FILE = "security.properties";
    
        @Bean
        @ConditionalOnMissingBean(search = SearchStrategy.CURRENT)
        public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
            StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
            encryptor.setAlgorithm(StandardPBEByteEncryptor.DEFAULT_ALGORITHM);
            encryptor.setPassword("security");
            EncryptablePropertySourcesPlaceholderConfigurer
                    configurer = new EncryptablePropertySourcesPlaceholderConfigurer(encryptor);
            configurer.setLocation(new ClassPathResource(SECURITY_PROPERTIES_FILE));
            return configurer;
        }
    }

    配置文件的写入和Spring XML的基本类似。application.yml相当于applicationContext.xml,security.properties就是要进行属性替换的配置文件。

    application.yml:

    spring:
      datasource:
        url: jdbc:mysql://localhost:3306/abc?useSSL=false
        username: root
        password: ${jdbc.password}

    security.properties:

    jdbc.password=ENC(jWgGELCkuxRuCI2Aqa6cF9VCxYpuKEZr)

    创建数据源的时候在使用属性参数时,会对ENC()中的内容进行解密,达到认证成功,创建数据源完成。

    http://www.tuicool.com/articles/YZJNzy3

  • 相关阅读:
    妙用Telnet快速收发电子邮件(转载)
    windows server 2003如何安装IIS,配置IIS,让iis支持aspx(收集)
    T7400等DELL工作站及服务器的Windows server 2003系统安装——解决“找不到安装在计算机上的硬盘驱动器 安装无法继续,要退出请按F3”问题
    PostgresSQL连接认证设置(收集)
    安装PostgreSQL :Problem running postinstall (收集)
    UltiDev Cassini Web Server介绍
    配置Lumisoft Mail Server给外网邮箱发消息
    mysql命令行常用命令(收集)
    SQL复制数据表及表结构
    解决lumisoft mail server使用中的错误“550 5.7.1 Unable to relay for xxx”
  • 原文地址:https://www.cnblogs.com/softidea/p/5841042.html
Copyright © 2011-2022 走看看