Protogalaxy

Planet #0

PHSS-Core开发日志#9 Spring Security ACL配置#1

在完成了PHSS-Core对Spring Security的引入的初期阶段是之后,我又引入了Spring Data REST用来快速构建RESTful的资源访问与操纵API,在实现了Spring Data REST的基本功能之后,又有一个新的问题出现了–那就是REST API下资源的访问权限问题。 在只有Spring Security基础配置的情况下,用户登录后,通过RESTful api(/rest)可以访问到数据库中的所有资源,也就是说当某个登录后,调用/rest/musicAlbumEntities接口,不仅可以看见属于自己的专辑,还可以看见整个数据库中其他用户的专辑。经过对Spring Data REST的说明文档的一番研读,发现最接近我的要求的是@PreAuthorize功能,该注解提供了方法级的安全性控制,也就是说只有特定用户才能访问特定方法,但在经过尝试之后PreAuthorization模型并不能满足我的需求,所以我又将眼光转回到了Spring Security的说明文档上。

PHSS-Core开发日志#8 Spring Security踩坑指南

在完成了由Hibernate到Spring Data JPA的切换后,我开始了Service层的设计,由于PHSS对安全性以及开发速度的需求,我选择了使用同属Spring Projects系列的Spring Security。 安全是一个非常抽象且不断变化的概念,在如今的Web环境下,一个动态的,不断完善的安全系统显得至关重要。在现代Web应用中,只有建立一个完善的安全层才能尽可能保证各个层级的安全性。 在现在的网络环境中,常见的攻击手段有XSS,SQL注入,CSRF,SSRF,xee,xPath注入等。 我们要做的就是在安全层建立完备的系统来防御这些可以预见的以及其他不可预见的攻击。在系统底层,我们需要处理诸如传输安全与系统识别的问题,最简单的例子就是开启https连接使用X.509认证以防止传输过程中的中间人攻击。然后我们还需要将关键的数据-例如密码与身份证号等各种信息进行加密储存以最大程度的防止系统被攻破后的数据泄露。在Service层,我们需要一套完善的权限管理机制来确保数据只能被拥有相关权限的用户访问到,更加高级的还有方法级的授权验证等。

PHSS-Core开发日志#7 Spring Data JPA及Spring data REST配置记录

1.Spring Data JPA 随着开发进度的不断推进,由于对REST服务的需求与对开发速度的需要,加之在设计初期PHSS的整个系统就坚定拥抱了Spring Projects,所以在Service开发开始前的这个节点,我将ORM框架由基本的Hibernate切换到了与Spring的其他各种项目更有亲和性,并且开发更为简便的Spring Data系列,包括Spring data JPA,Spring data REST。