我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 516|回复: 0

使用pac4j保护你的Spark Java Web应用

[复制链接]

该用户从未签到

142

主题

157

回帖

102

积分

二级逆天

积分
102

社区居民忠实会员社区劳模原创达人终身成就奖

QQ
发表于 2016-2-29 06:39:47 | 显示全部楼层 |阅读模式
使用 pac4j 保护你的 Spark Java Web 应用
oschina    23天前
我非常自豪的宣布基于 pac4j v1.8 (https://github.com/pac4j/pac4j)的面向SparkJava v2.3网页应用程序的 spark-pac4j v1.1 (https://github.com/pac4j/spark-pac4j) 发布了。它是一个完整的安全库,简单且强大,支持认证和授权, 还有应用程序退出以及向CSRF保护这样的高级特性。

它支持大多数认证机制:OAuth (Facebook, Twitter, Google, Yahoo...), CAS, HTTP (表单, 基础认证...), OpenID Connect, SAML, Google App Engine, JWT, LDAP, RDBMS, MongoDB, 以及 Stormpath 还有大多数认证检查 (角色/权限, CSRF 令牌...)

四个步骤就能保护你的网页app:

1) 加入库的依赖 (spark-pac4j 库) 以及需要的认证机制(例如 用于Facebook的oauth模块)

2) 定义认证机制(客户端)和授权方 (来检查认证)。例如:Facebook 认证和 ROLE_ADMIN

1
FacebookClient facebookClient = new FacebookClient("mykey", "mysecret");
2
Config config = new Config("http://localhost:9000/callback", facebookClient);
3
config.addAuthorizer("admin", new RequireAnyRoleAuthorizer("ROLE_ADMIN"));
3) 定义 Facebook 认证的回调路由:

1
Route callback = new CallbackRoute(config);
2
get("/callback", callback);
3
post("/callback", callback);
4) 为 /facebook/* URL 添加保护,要求用户通过认证,如果没有通过则执行Facebook的认证:

before("/facebook/*", new RequiresAuthenticationFilter(config, "FacebookClient"));

或者还需要用户拥有 ROLE_ADMIN:

1
before("/facebook/*", new RequiresAuthenticationFilter(config, "FacebookClient", "admin"));
非常简单,是不是?

尝试demo: https://github.com/pac4j/spark-pac4j-demo 并阅读文档: https://github.com/pac4j/spark-pac4j
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

论坛开启做任务可以
额外奖励金币快速赚
积分升级了


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

平平安安
TOP
快速回复 返回顶部 返回列表