当前位置: 首页 > news >正文

站内seo的技巧完整网站建设案例教程

站内seo的技巧,完整网站建设案例教程,国外十大黄冈推广,济南招考院网站springboot 配置加密 [TOC](springboot 配置加密) 前言一、在配置类赋值之前解密二、修改赋值后加密的配置类 前言 在一些国家项目中经常会要求不能暴露数据库链接和密码, 所以需要对配置文件里面的一些配置进行加密处理。 解决方法有两种#xff1a;一种是在配置加载后还没给… springboot 配置加密 [TOC](springboot 配置加密) 前言一、在配置类赋值之前解密二、修改赋值后加密的配置类 前言 在一些国家项目中经常会要求不能暴露数据库链接和密码, 所以需要对配置文件里面的一些配置进行加密处理。 解决方法有两种一种是在配置加载后还没给对应的配置类赋值的时候将密文解密成明文替换。第二种是配置类已经赋值好了在使用之前解密替换。 如果只是配置文件加密解密我觉得第二种方式更好也更合适。 一、在配置类赋值之前解密 因为 springboot 读取到的配置最后都会存在于 Environment 对象中, 所以我们可以实现一个 BeanFactoryPostProcessor 对 Environment 处理需要注意的是 Environment 中的各种 PropertySource 都是不可修改的但是 springboot 在读取的时候应该是顺序读取(博主也没有看过源码这个是看到根据测试结果猜出来的)所以我们可以在 Environment 中第一个位置加入一个未加密的 PropertySource。 这种方式甚至可以修改配置文件中启动的端口号。 /** * 方式一: 通过覆盖 Environment 配置 */ Configuration public class EnvironmentBeanFactoryPostProcessor implements BeanFactoryPostProcessor {/*** 所有的从配置文件中读取到的配置都存放在 Environment 中, 使用 OriginTrackedMapPropertySource 将配置存储起来* {link org.springframework.boot.env.YamlPropertySourceLoader#load}*/Overridepublic void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {StandardServletEnvironment environment beanFactory.getBean(StandardServletEnvironment.class);String[] keySet new String[] {spring.datasource.druid.master.url,spring.datasource.druid.master.username,spring.datasource.druid.master.password,spring.datasource.druid.slave.url,spring.datasource.druid.slave.username,spring.datasource.druid.slave.password,};IteratorPropertySource? iterator environment.getPropertySources().iterator();ListPropertySource? replacePropertyList new ArrayList(1);while (iterator.hasNext()) {MapString, Object map new HashMap();PropertySource? propertySource iterator.next();if (propertySource instanceof OriginTrackedMapPropertySource) {OriginTrackedMapPropertySource originSource (OriginTrackedMapPropertySource) propertySource;MapString, Object unModifiableMap originSource.getSource();MapString, Object any MapUtil.getAny(unModifiableMap, keySet);if (any.isEmpty()) {continue;}unModifiableMap.forEach((r, s) - {if (any.containsKey(r)) {s EncodeUtil.sm2Decode(s.toString(), KeyType.PrivateKey);}map.put(r, s);});OriginTrackedMapPropertySource modifiablePropertySource new OriginTrackedMapPropertySource(originSource.getName(), map);replacePropertyList.add(modifiablePropertySource);}replacePropertyList.forEach(r - {environment.getPropertySources().addFirst(r);});}} }二、修改赋值后加密的配置类 这个就很简单了, 配置类也是一个 bean, 是 bean 就会走 Spring 的生命周期。可以实现 BeanPostProcessor 对 bean 的值进行处理。 /** * 方式二: 在对 DataSource 赋值之后再次处理 */ Configuration public class MyConfig implements BeanPostProcessor, PriorityOrdered {Overridepublic Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {if (bean instanceof DruidDataSource) {DruidDataSource dataSource (DruidDataSource) bean;dataSource.setUrl(EncodeUtil.sm2Decode(dataSource.getUrl(), KeyType.PrivateKey));dataSource.setUsername(EncodeUtil.sm2Decode(dataSource.getUsername(), KeyType.PrivateKey));dataSource.setPassword(EncodeUtil.sm2Decode(dataSource.getPassword(), KeyType.PrivateKey));}return bean;}/*** 必须在 ${link ConfigurationPropertiesBindingPostProcessor} 之后执行*/Overridepublic int getOrder() {return Integer.MAX_VALUE;} }
http://www.pierceye.com/news/10385/

相关文章:

  • 红安建设局网站一元云购网站开发
  • 网站乱码解决办法设计软件培训机构排行榜
  • 电子商务网站开发报价临沂网站开发公司电话
  • 拖拽建站系统源码优惠网站代理怎么做
  • 有没有正规的毕设代做网站wordpress分类目录keyword
  • 网站模板代理青岛外贸网站建站
  • 不动产登记网站建设gta5网站建设中什么意思
  • 网站建设的搜索栏怎么设置十堰seo推广
  • 专业建站推广网络公司网页制作与网站建设的题
  • 医院网站建设公司价格低南京高端网站开发
  • wordpress多语言企业网站软件设计师培训机构
  • 免费做公益网站网站建设创新
  • 企业网站模板 优帮云做网站怎么弄
  • dede小视频网站源码网络营销网站建设ppt
  • 烟台 o2o平台带动做网站行业上海传媒公司总裁李健
  • 综合购物网站建站长沙百姓网
  • 公司网站总感觉少点什么找什么人做东莞建筑设计院排名
  • 商城网站功能介绍网站怎么做推广和宣传
  • 口碑好的盐城网站建设广州天河区房价2022年最新房价
  • 龙川县建设网站asp做网站优点
  • 杭州网站建设 seo西安教育平台网站建设
  • 中国芗城区城乡建设局网站dede门户网站模板下载
  • 网站站点管理在哪里做网站推广的好处
  • 桂林北站怎么去阳朔外贸网站建设 泰州
  • 2003网站的建设介绍小说的网站模板下载
  • 如何做网站策划win2003网站建设
  • 艺美网站建设徐州建站方案
  • 宁阳网站定制制作营业执照图片手机软件
  • 网站开发常用js函数制作企业宣传册用什么软件
  • 泰州专业制作网站网站制作实例