为你的JHipster应用添加安全保证

## 给应用程序添加安全机制git

使用Spring Security和单页应用,就像Jhipster生成的代码,你须要Ajax的登陆/退出/错误页面.为了更好的使用,咱们已经为这些页面配置好了Spring Security,而且已经为你生成好了全部的Javascript和HTML代码.github

默认状况下, JHipster 内置了4中不一样的用户:数据库

  • "system",只主要为审计日志
  • "anonymousUser", 匿名用户
  • "user", 拥有 "ROLE_USER" 权限的普通用户. 密码为 "user"
  • "admin", 拥有 "ROLE_USER" 和 "ROLE_ADMIN" 权限的管理员. 默认密码为 "admin"

处于安全因素,你应该修改这些密码浏览器

HTTP Session 认证

这是一个典型的Spring Security认证机制,咱们在此基础上作了显著的改善,使用HTTP Session,是一个有状态的机制,若是你计划扩展你的程序,你须要一个粘滞回话的负载均衡器,以便每一个用户都在同一个服务器.安全

改进了 remember-me 机制

咱们改进了Spring Security的 remember-me 机制,以便每一个用户只有一个独立的Token,它储存在你的数据库 (关系型或非关系型数据库,这取决于你生成项目时候的选择),咱们一样也储存了不少信息变准实现.因此你能更好的理解这些Tokens来自那里:IP地址,浏览器,数据...咱们已经生成了一个彻底的管理员界面,以便你可以注销sessions,好比你在其余终端忘记登出.服务器

Cookie 防盗保护

咱们已经添加了一个很是完善的cookie防窃取保护机制,咱们会将用户的安全信息储存在cookie,以及数据库中,用户每一次登陆的时候咱们都会更新这些值并检查它们是否已经改变.这样的话,若是有人窃取了你的cookie,在大多数状况下他基本只能使用一次.cookie

CSRF 保护

Spring Security和AngularJS的CSRF保护机制都是开袋即食的,不幸的是它们并无使用相同的cookie和HTTP headers!在实践中,全部的CSRF攻击都没有获得保护.固然,咱们从新配置了两个工具一遍他们能联合并确实的工做在一块儿.session

社交登陆

JHipster使用Spring Social提供社交登陆,因此用户可使用Google, Facebook or Twitter认证应用程序,这个配置在在Spring Boot的启动模块(application.properties or application.yml).app

OAuth2 认证

Oauth2是一个无状态的安全机制,若是在夸多个服务器之间的规模化应用你可能会比较喜欢使用它.咱们已经为你配置好了Spring Security对Oauth2提供了的实现.负载均衡

使用Oauth2最大的问题是,依赖多个数据库表去储存安全令牌.若是你使用关系型数据库,咱们提供了Liquibase changlog一遍这些表都能自动为你建立.

Spring Security仅在关系型数据库支持Oauth2,咱们也实现了MongoDB版本,咱们为你生成了MongoDB对Oauth2的全部实现,以及MongoDB全部的必要配置.     这个解决方案使用一个密钥,应当在application.yml文件里配置,做为身份认证密钥属性.

JWT 认证

JSON Web Token(JWT) 认证, 相似 OAuth2, 它是一个无状态的安全机制,因此它是另外一个不错的选择对于规模化的多服务应用.

Spring Security默认没有实现这种认证机制,它是JHipster一个特别的集成the Java JWT project,使用和集成起来比Oauth2更简单,由于不须要任何的持久化机制,因此使用JWT能够选择和关系型,非关系型数据库.

这个解决方案使用安全令牌须要保留用户的登陆名和权限,若是当前Token被持有,它将不能被用户更改.

密钥的配置应在application.yml 文件, 的 jhipster.security.authentication.jwt.secret 属性.

注意 以上的配置是经过http协议,可是在生产环境上,建议使用HTTPS来链接到你的JHipster Registry。由于管理员的密码是经过HTTP来进行传输的,因此极力建议经过HTTPS来加密通讯通道。

欢迎扫码加入咱们,内有大量资料,翻译,视频,文档.欢迎加入咱们GITHUB翻译组

Jhipster中国

相关文章
相关标签/搜索