使用 pac4j 保護你的 Spark Java Web 應用

morganlee 9年前發布 | 19K 次閱讀 安全相關

我非常自豪的宣布基于 pac4j v1.8 (https://github.com/pac4j/pac4j)的面向SparkJava v2.3網頁應用程序的 spark-pac4j v1.1 (https://github.com/pac4j/spark-pac4j) 發布了。它是一個完整的安全庫,簡單且強大,支持認證和授權, 還有應用程序退出以及向CSRF保護這樣的高級特性。

它支持大多數認證機制:OAuth (非死book, 推ter, Google, Yahoo...), CAS, HTTP (表單, 基礎認證...), OpenID Connect, SAML, Google App Engine, JWT, LDAP, RDBMS, MongoDB, 以及 Stormpath 還有大多數認證檢查 (角色/權限, CSRF 令牌...)

四個步驟就能保護你的網頁app:

1) 加入庫的依賴 (spark-pac4j 庫) 以及需要的認證機制(例如 用于非死book的oauth模塊)

2) 定義認證機制(客戶端)和授權方 (來檢查認證)。例如:非死book 認證和 ROLE_ADMIN

非死bookClient 非死bookClient = new 非死bookClient("mykey", "mysecret");
Config config = new Config("http://localhost:9000/callback", 非死bookClient);
config.addAuthorizer("admin", new RequireAnyRoleAuthorizer("ROLE_ADMIN"));

3) 定義 非死book 認證的回調路由:

Route callback = new CallbackRoute(config);
get("/callback", callback);
post("/callback", callback);

4) 為 /非死book/* URL 添加保護,要求用戶通過認證,如果沒有通過則執行非死book的認證:

before("/非死book/*", new RequiresAuthenticationFilter(config, "非死bookClient"));

或者還需要用戶擁有 ROLE_ADMIN:

before("/非死book/*", new RequiresAuthenticationFilter(config, "非死bookClient", "admin"));

非常簡單,是不是?

嘗試demo: https://github.com/pac4j/spark-pac4j-demo 并閱讀文檔: https://github.com/pac4j/spark-pac4j

 本文由用戶 morganlee 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!