【问题标题】:basic/digest authentication implementation in Java server code/web serverJava 服务器代码/Web 服务器中的基本/摘要身份验证实现
【发布时间】:2012-07-26 18:29:04
【问题描述】:

我们需要在 Java web 项目中支持基本认证和后期摘要认证。 我的疑问是

  • 基本/摘要身份验证是否是 Web 服务器中的配置 (tomcat、jboss 等)。我们的用户/密码在 SQL 数据库中,我们 通过数据服务获得这些。在这种情况下,我如何配置 网络服务器使用数据服务进行身份验证?
  • 是否需要在基本/摘要代码中显式处理 验证?就像我会收到来自 Servlet 并将连接到数据服务进行身份验证?

【问题讨论】:

    标签: jakarta-ee authentication jaspic


    【解决方案1】:

    基本和摘要式身份验证包含在 servlet 规范中。阅读规范或this tutorial 了解其工作原理。

    不过,凭据的存储位置和检查方式由每个容器自行决定。 Tomcat支持多种Realm implementations(基于文件、基于JDBC、基于LDAP等)不知道对于JBoss。

    【讨论】:

      【解决方案2】:

      在 Java EE 中,安全性默认是声明性的。这意味着您只需通过称为Role 的抽象概念指定您希望保护哪些资源。

      除了 JB Nizet 的回答之外,JBoss AS 特定的登录模块(大致相当于 Tomcat 的 Realm 实现)可以在这里找到:http://docs.jboss.org/jbosssecurity/docs/6.0/security_guide/html/Login_Modules.html

      很多人不知道(看起来),Java EE 6 还支持标准化的身份验证模块。这些是基于文件的、基于 JDBC 的等,通常被认为是特定于应用程序服务器/容器的。

      这是通过所谓的JASPIC API(又名 JASPI,又名 JSR 196)完成的,参见例如:

      不幸的是,JASPIC/JASPI/JSR 196 的采用充其量似乎平淡无奇。目前,人们似乎更信任 AS 特定领域、登录模块以及您更好的东西,或者只是不知道替代方案。

      【讨论】:

      • +1。我根本不知道 JASPIC。它是 JEE 规范的一部分吗?是否需要支持才能获得认证?它是标准网络配置文件的一部分吗?
      • 我相信 JASPIC 不是 Java EE 6 Web Profile 的一部分,这可能是我现在想到它的原因之一。然而,它绝对是完整 Java EE 6 规范的强制性部分。参见例如docs.oracle.com/javaee/6/tutorial/doc/bnacj.html
      • 附注也许令人惊讶,但像 Jetty 这样的准系统确实支持 JASPI(C)。另请参阅此概述:en.wikipedia.org/wiki/…
      猜你喜欢
      • 1970-01-01
      • 2014-01-03
      • 2012-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-26
      相关资源
      最近更新 更多