前面使用spring cloud security和spring cloud oauth2写了一个第三方授权的例子,例子非常的简单,主要目的是用来熟悉OAuth2.0 申请授权的整个流程,这个简单的示例肯定是不能直接用于生产环境的,还有很多需要改进的地方,我们来总结一下:
从上面列举的问题可以看出,就算示例代码能运行,流程也清楚,但是要学会使用Spring Cloud Security,尤其要在生产环境使用,还需要对每个细节都能掌握和了解才行。
首先我们来改进第一个地方,实现加密配置。大家知道用户注册之后,存储用户资料的时候,用户密码在数据库中最好是加密后再保存,同样的道理,oauth的客户端信息最终也是要存储在数据库而不是直接在代码中配置死的,它的secret字段也应该加密后再存储,下面在授权服务中来配置加密,首先修改security配置类,配置加密方式:
然后将登陆用户的密码配置为加密:
然后修改授权配置类,将客户端配置中的secret配置为加密:
这样加密配置就完成了。资源服务不用做任何修改。
配置上面三个加密的地方后,加密就配置好了,下面来测试一下,其实测试流程与前面的一样,客户端感知不到,得到的access_token如下:
最终访问结果如下:
代码地址: https://gitee.com/blueses/spring-boot-security 17 18