设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

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

2016-2-28 20:23| 发布者: joejoe0332| 查看: 2368| 评论: 0|原作者: oschina|来自: oschina

摘要: 我非常自豪的宣布基于 pac4j v1.8 (https://github.com/pac4j/pac4j)的面向SparkJava v2.3网页应用程序的 spark-pac4j v1.1 (https://github.com/pac4j/spark-pac4j) 发布了。它是一个完整的安全库,简单且强大,支 ...

我非常自豪的宣布基于 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
2
3
FacebookClient facebookClient = new FacebookClient("mykey""mysecret");
Config config = new Config("http://localhost:9000/callback", facebookClient);
config.addAuthorizer("admin"new RequireAnyRoleAuthorizer("ROLE_ADMIN"));

3) 定义 Facebook 认证的回调路由:

1
2
3
Route callback = new CallbackRoute(config);
get("/callback", callback);
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


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部