问题标签 [jaspic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jakarta-ee - Tomcat-Jaas - 如何检索主题?
我正在研究 JAAS,并且正在实现一个简单的示例,以在使用带有 JaasRealm 的 Tomcat 的 web 应用程序中使用。
现在我的问题是我不知道如何检索主题,因为代码Subject subject = Subject.getSubject(AccessController.getContext());
总是返回 null。
我正在使用 Tomcat 7.0.27。有什么我错过的吗?换句话说,如何使用 JAAS 在 Java EE 中管理授权?例如,如何在 JAAS 的安全上下文中实施操作?
java - JSF 中基于表单的身份验证
我想在 JSF/Primefaces 应用程序中实现一个简单的身份验证。我尝试了很多不同的东西,例如Dialog - Login Demo对对话框进行了简单的测试,但它没有登录用户还是?
我还查看了 Java 安全性,例如:
有了这个 /protected 下的所有内容都受到保护,但据我了解,我需要在服务器中定义一个领域以进行身份验证。我不想在服务器中指定它,而只是在数据库中进行简单的查找。
有没有一种方法来验证用户而不在应用程序服务器中定义一些东西?或者另一个简单的解决方案来验证和保护不同的页面?
java - 如何在 Jetty 上使用 JASPI/JASPIC?
在 Jetty 的主项目页面上提到了与 JASPI (JASPIC/JSR 196) 的兼容性。
但是,Jetty 8 的发行版似乎不包含任何与 JASPI 相关的类。[jetty home]/lib 中有一个jetty-security-8.1.8.v20121106.jar
jar,但是这个不包含任何 JASPIC/JASPI 类型。
Jetty wiki 上关于 JASPIC/JASPI的文档只是一个占位符,不包含任何信息。
经过一番谷歌搜索后,我在 Eclipse 站点上找到了 JavaDocs,并发现某处应该有一个 jetty-jaspi-8.1.8.v20121106.jar 。这些 JavaDocs 也包含在发行版中。最后,Github 上出现了一个jetty-jaspi 存储库。
显然有一些可用的支持,但为什么这些类似乎不存在于 Jetty 发行版中,关于如何配置它的文档在哪里?我错过了什么?
weblogic - 使用 Jaspic/JSR196 模块的 weblogic 中的会话失效
我们开发了一个 jsf web 应用程序,其中包含一个由 webapp 以编程方式注册的 Jaspic/JSR196 模块。
我们按照以下博客中的说明来实现这一点: http: //arjan-tijms.blogspot.pt/
该解决方案适用于验证用户:我们有一个接收用户名和密码并调用 request.authenticate 方法的 bean。该请求在服务器身份验证模块 (SAM) 中得到验证,并且用户通过了身份验证。
问题是,在 webapp 中导航时,会话似乎经常失效,这使得用户被重定向到登录页面。当 request.getUserPrincipal 在访问受保护的资源时返回 null 时,SAM 模块实现将用户重定向到登录页面。我们没有找到这种行为的模式。
在分析日志时,我们发现了一些抛出的异常:(有时这些异常会显示在网页中。)
HttpSession 无效
会话失效正在使用不同的线程进行
响应已提交
以下日志条目显示未找到有效会话,因此用户被重定向到登录页面:
似乎容器使 Http Sessions 无效。但我们无法理解为什么。有什么帮助吗?
security - Java EE 6 App 不同的登录方式
我目前正在开发一个带有 JSF(前端)和 JPA、EJB 和 CDI(后端)的“基本”Java EE 6 应用程序。到目前为止一切正常。
对于登录部分,我选择了基于表单的身份验证和 JDBC-Realm。
现在我喜欢提供一些 REST 服务(Jersey),这些服务将被移动设备使用。因此,我需要添加第二种身份验证方式。但根据我的理解,一次只能有一个。
我已经尝试过一些 PoC,但是每次我调用需要有效用户的 REST 服务时,该服务都会重定向到登录页面。
是否有任何最佳实践来处理此类问题?
是否可以将 Oauth 添加到当前的登录机制中,因为我不想在每个请求中都发送用户/密码或会话 ID。某种令牌会很棒。
java - JAAS - 如何在 Web 层对用户进行身份验证?
我试图了解如何使用 JAAS 保护 Java EE 应用程序。
实际上我了解如何在 EJB 中使用规则,但是,我不了解如何在 Web 层中对用户进行身份验证,例如使用登录表单创建一个简单的 JSF 页面,使用数据库检查给定的用户名和密码,然后在成功案例如何在我的应用程序中为此用户设置委托人。
这样做的常见方法是什么?我希望有尽可能多的独立于 AS 的解决方案。
java - Java EE 安全:JASPIC / JAAS 还是应用安全框架?(玻璃鱼 3)
我目前正在使用 Oracle ADF(它是一个端到端的 Java EE 框架)来构建我的 Web 应用程序,并使用 GlassFish 3.1 作为应用程序服务器。
后者支持JAAS(在其管理控制台中声明)。因此,我创建了一个安全领域并将它们映射到配置文件中声明的角色,并使用 JAAS 来实现授权和身份验证安全功能。一切都很好,直到现在!过去几周我一直在研究 Java EE 安全性。
我发现,如果您坚持“基本”安全,那么 JAAS 就足够了。此外,似乎 JAAS(作为 Java 安全框架的一部分)仅适用于 Java SE(但由于 Java EE 是基于 Java SE 构建的,因此它的一些模块正在被重用,例如 LoginMethod 和 Callbacks)。
然后,我发现了很多关于JASPIC的帖子,发现它只能通过编程方式实现(不是问题)并且尚未得到应用服务器供应商的完全支持,并试图在两者之间进行比较。即使JASPIC1.1版本已经解决了一些问题,例如:
然而,容器不会完全记住身份验证。SAM 仍然在每次请求时被调用,并且 SAM 仍然需要重新认证
(对我来说听起来不太好)。
然后,我继续寻找集成一些安全框架。最著名的似乎是“春天”和“白”。当然,他们每个人都有自己的特点(可能第一个更适合特定情况,而第二个更适合另一种情况)。对我来说更重要的是:
- 验证
- 授权
- 会话管理(可能还有加密)
但是,我到处都发现了相互矛盾的结论。结果:我现在比搜索之前更困惑。
我只是安全等主题的新手,而且我是一名开发人员(我有一些东西要实现),所以很难跟上每个新版本的更新,而且安全方面的进展似乎每天都在飞速发展.
如果可能的话,我想要一些基于个人经验的事实。每一个提示或建议都值得赞赏。在采取实施步骤之前,我想确保自己有信心。
java - Java EE 7 Form based authentication
I'm currently working on a web application based on Java EE 7, PostgreSQL and the application server GlassFish 4. I need to implement a form based authentication, and to secure some URL knowing that :
- the users and the roles/groups (whatever they are called) are stored in the database.
- I wanted my application to be as "standard" as possible (i.e I am currently using JSF and JPA, and no other framework like spring, struts ...)
After some research, I found that Java EE provided a standard authentication mechanism called JASPIC. So, I focused my research on JASPIC and I read multiple Stackoverflow Q/A and those articles written by Arjan Tijms (It's almost impossible to find a Stackoverflow Q/A related to Java EE without one of his answers or comments, thanks to him by the way) :
- http://arjan-tijms.blogspot.fr/2012/11/implementing-container-authentication.html
- http://arjan-tijms.blogspot.fr/2013/04/whats-new-in-java-ee-7s-authentication.html
- http://arjan-tijms.blogspot.fr/2014/03/implementing-container-authorization-in.html
My question is : will JASPIC allow me to do what I need (form authentication + URL restriction with roles) and is it worth the effort to use it ? What I mean is : it's perhaps safer and easier to use another mechanism.
Arjan Tijms also says that whether or not using JASPIC is "a kind of chicken-and-egg problem" and if JASPIC is safe to use (It doesn't create more problems than it solves), no matter the amount of code I need to write, I really want to be "one of the first chickens".
java - Wildfly 8.1.0 Final / JASPIC:调用 HttpServletRequest.authenticate() 时未调用 ServerAuthModule.validateRequest()
我正在将 Glassfish 应用程序迁移到 Wildfly 8。在 Glassfish 中我使用的是 Jersey,而在 Wildfly 中我使用的是 RESTeasy。我在 WildFly 中的 JASPIC 实现中遇到了一些问题。
在这两个容器中,SAM (ServerAuthModule) 在请求开始时被调用以允许验证先前的身份验证。
在 Wildfly 中,我的 SAM 在调用 HttpServletRequest.authenticate() 后没有被调用。在 Glassfish 中,这按预期工作并重新调用了 SAM。为了让 Wildfly 在请求期间第二次调用 SAM,我需要做些什么特别的事情,还是这个功能在 Wildfly 中被破坏了?
java - 是否可以根据需要而不是在登录 ServerAuthModule (JASPIC) 时确定用户的组成员身份
我正在尝试编写自己的ServerAuthModule
,以使用自定义登录系统。
如果我理解一切正确,那么容器会为每个传入请求调用 validateRequest 方法,并且我的 SAM 将检查凭据,并通过回调处理程序。
我现在的问题是,当用户登录时,我不知道用户属于哪个组。我只能检查用户是否在给定的组中。是否有可能为容器提供一个方法来检查用户是否在给定的组中,而不是在validateRequest
方法中给它一个包含组的数组?