Dane.shang
你这个叼毛
  • Spring Security如何进行自定义密码校验

    众所周知,Spring Security框架中,关于登陆认证这一块,官方似乎过于封闭,仅仅提供了几个模式,比如密码模式,客户端模式,等等等,但是我们要想自己实现一个模式的话,就比较麻烦了。 我在项目中,其实由于产品的原因,是要求数据库存储的密码,要求非明文,并且是可逆的, 而spring security原生的密码校验,似乎和我们往常登陆中的校验有些不一样。 那我就来跟一下源码看看吧。 1,首先前面的咱们就不说了,无非是进入登陆的主入口,TokenEndpoint类中的/oath/token映射的方法中。 这个类在spring-security-oauth jar包中的,/org/springframeword/security/oauth2/provider包中。 这个做为入口类,执行认证方法,但是,在方法中并没有找到密码认证的过程。 正纳闷呢,偶然间发现在TokenEndpoint同包...
    • 0
    • 12
    • 1
    • 2019-09-08
  • 记一个spring注解式事物不生效问题

    今天同事找到我说我给的demo项目的Spring @Transactional注解无法生效了。由于框架是我搭的,于是我就开始排查问题。 思路一:怀疑异常被捕获了。 众所周知,spring @Transactional注解是利用动态代理的方式,生成一个当前被spring管理的类的代理对象,并通过在代理方法的前后进行事物的边界提交和回滚。如果异常被捕获了,那么代理方法后就无法捕获到异常,代理对象就无法对事物进行回滚。 然而,我看了他们的代码,并没有自己捕获异常,于是此怀疑推翻。 思路二:怀疑抛出的不是RuntimeException,Spring 的默认事物管理器无法捕获非RuntimeException。 然而,我尝试在方法里进行除0操作。也无法正常事物回滚。 思路三:会不会是没加@Transactional的方法调用了加了@Transactional的方法导致的事物失效。 然而,并没有。 ...
    • 0
    • 15
    • 1
    • 2019-09-04
  • ECS网络问题

    1,阿里云ECS服务器默认分配了两个地址 10网段的内网地址和另外一个外网地址。其中,一个账户下,一个区域内的内网地址互相可以通信。 1,服务器内无法访问外网,或者外部无法访问内部 可通过安全组配置允许入口和出口。 2,服务器内部访问外部时,即使配置了安全组,也无法映射DNS; 新添加一个DNS解析服务器(在/etc/resolv.conf 文件中配置114DNS解析服务器) 3,内部服务访问,无法解析主机。 表象为可以互相ping通,但是具体端口用telnet却拒绝访问或者无法获取主机名,端口被防火墙拦截,解除内网防火墙端口拦截即可。
    • 0
    • 9
    • 3
    • 2019-08-21
  • Jenkins小知识点

    1,jenkins脚本启动服务的时候,会默认在启动后使用processTreeKiller来kill掉自己启动所有子进程,而且这是Jenkins的默认行为。 为了防止启动的服务被杀掉,我们需要在java -jar命令前面加上 BUILD_ID=dontKillMe 来确保启动的服务不会被杀掉。
    • 0
    • 7
    • 0
    • 2019-08-21
  • 记一次依赖引发的血案

    事发原因:项目启动,提示spring需要初始化数据库连接池的配置。 报错如下: *************************** APPLICATION FAILED TO START *************************** Description: Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class Action: Consider the following: If you want an embedded database (H2, HSQL or Derby), ple...
    • 1
    • 15
    • 1
    • 2019-07-31
  • maven打包提示权限不足

    在做公司项目的时候,我封装了几个模块的基础代码,想打包到公司的私服上,以供其他员工使用。 打包过程中发现,始终无法打包上传成功,提示没有权限上传,而我配置的又是admin的账户,所以根本不太可能是账户权限的问题。 于是我经过排查和查询之后,发现我项目中配置的repoitory中的id,和maven里的setting文件中的不一样,导致打包过程中,系统没有匹配上账户,所以走的匿名账户,而匿名账户是没有打包上传权限的,改为一致后打包成功。 人生还真是寂寞如雪啊。
    • 0
    • 7
    • 0
    • 2019-07-27
  • 封装common包时注入问题

    最近在做一个hello world的小项目demo。 我就想着给公司制定一些模块的规范,例如缓存操作,日志,返回等。 在做缓存的时候,就遇到了redisTemplate注入错误的问题。 我做了一个自定义的redisTemplate配置类,如下 @EnableCaching @Configuration @ConditionalOnBean(RedisConnectionFactory.class) @AllArgsConstructor public class RedisTemplateConfig { private final RedisConnectionFactory redisConnectionFactory; @Bean(name = "womRedisTemplate") public RedisTemplate<String, Object> wo...
    • 0
    • 16
    • 0
    • 2019-07-27
  • spring 注解 @RedisCacheable遇到的坑

    最近在修改项目中一块老的业务的时候,同事由于开发另外一块业务,在一个实体bean中添加了一个get方法,该方法返回了该bean中几个属性的计算结果。 public String getNameAndId(){ return schoolId + schoolGradeName; } 由于在我这块业务中缓存使用到了这个bean,并且使用Serializable关键字对此bean进行序列化后存入redis缓存中。 这个时候,由于序列化关键字或者spring缓存注解的原因,自动识别get方法,并将方法名序列化成为一个名为 nameAndId 的 “不存在的” 字段。 就导致,这个“不存在的” 字段被序列化成json字符串到了redis缓存中,这一步并没有什么影响,可是在后面业务场景需要取出这个value进行实例化的时候,由于这个“不存在的”字段,导致实例化的时候spring 并不能找到...
    • 0
    • 20
    • 1
    • 2019-02-20
  • CountDownLatch线程同步计数器时问题

    在项目中使用CountDownLatch线程计数器进行线程池内线程同步的时候 CountDownLatch threadSignal = new CountDownLatch(threadNum); 需要初始化一个线程计数器,但是这个线程计数器必须在初始化的时候就初始化好计数器的最大初始化数量,并且不能动态修改。 //等待子线程执行完毕 try { threadSignal.await(); } catch (InterruptedException e) { LOGGER.error(“等待超时”); } 这个时候,一般我们要做整个线程池线程处理结果同步的时候,会使用await()这个方法来保证只有所有线程都返回结果后才会回到主线程继续执行。 由于业务的发展变更,需要另外多执行一个维度的数据处理,所以增加了线程池内线程的维度数,导致执行的时候卡在await()方法并且...
    • 1
    • 31
    • 2
    • 2019-02-18
  • docker容器中,几种常用镜像的安装与配置

    1.mysql docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=jk@2017 -v /data/docker_volume/mysql/data:/var/lib/mysql -v /data/docker_volume/mysql/conf:/etc/mysql/conf.d -d mysql:5.7 2.rabbitmq docker run -d --name rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=123456 -p 5672:5672 -p 15672:15672 rabbitmq:3.6.11-management 3.portainer docker run -d --name pt -p 9000:9000 --...
    • 0
    • 11
    • 0
    • 2019-02-17
文章分组
暂无数据