栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在glassfish中覆盖j_security_check?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在glassfish中覆盖j_security_check?

好的,我找到了答案。所以这里是:

基本上,我想要实现的是在glassfish中实现基于openid的身份验证机制。这样做的一种方法是使用,

ProgrammaticLogin
但这有一些缺点-
没有简单的方法可以重定向回请求的URL,而编程身份验证意味着程序员需要做更多的工作。因此,在阅读之后,我找到了实现目标的更好方法-
服务器身份验证模块
或SAM。这是在所述的标准过程的一部分JSR-196和用于GlassFish的(比标准即不同创建可插拔AUTH模块提供了一种方法
FORM
BASIC
等等)。通过此方法,您可以在保持声明式安全模型的同时将新的auth模块插入servlet容器。

因此,我要做的就是编写自己的自定义SAM。这是一个快速的方法:

  1. 实现ServerAuthModule接口,该接口主要归结为以下方法:

AuthStatus validateRequest(MessageInfo messageInfo, security.auth.SubjectclientSubject, security.auth.Subject serviceSubject) throws AuthException

  1. 将SAM打包到一个jar中,然后将jar放在glassfish lib目录中。

  2. 配置SAM以与您的应用程序一起使用。分两个步骤完成:

    • 在domain.xml中将您的SAM定义为消息安全提供者。
    • 绑定SAM以与您的应用程序一起使用。您可以通过在应用程序的sun-web-app.xml中定义httpservlet-security-provider属性来实现。将属性的值设置为在步骤1中分配给SAM的名称。

有关更多信息,请阅读Ron
Monzillo撰写的精彩教程。

更新:
有一个更简单,更优雅的解决方案,称为AuthenticRoast。这是由Aike
Sommer编写的Java库,可让您编写自己的可插入身份验证器。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/596071.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号