问题标签 [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 - Java Web 应用程序:使用自定义领域
我正在编写一个需要通过 web 服务执行登录的 java web 应用程序。当然,我正在使用的应用程序服务器(glassfish v2)提供的任何领域都不能解决问题。因此我不得不自己写。然而,我编写的领域实现似乎完全与 glassfish 相关联,不能在任何其他应用程序服务器中使用。
是否有任何标准或广泛支持的方式来实现自定义领域?是否可以以任何方式从 .war 部署该领域,或者它是否总是需要从服务器自己的类路径中加载?
java - 是否存在支持 openId 的 Java 身份验证和授权框架(Spring 安全性除外)?
实际上,我对支持多种 A&A 的 Java AA 框架很感兴趣。我发现存在 JAAS,但没有找到有关 OpenId 支持的任何信息。也许有一个模块可以使用它?Spring Security 支持 OpenId,但我只想看看任何替代方案。我还读到 Spring Security 有点复杂。
我认为这主要是常见的功能,必须有一种方法来简化开发人员的生活,而不是强迫他重新发明轮子。
security - 具有声明式安全性的 JSP 登录 - 实际身份验证是如何发生的?
我对此感到有些困惑,因为我没有看到很多可以让我了解完整情况的示例。到目前为止,我发现的最好的解释是this。
通过在 web.xml 中定义一个安全角色,例如“admin”,并让我的登录表单包含所有必要的字段(即 j_security_check 作为操作,以及字段 j_username、j_password),实际身份验证如何/在哪里发生?
我计划使用存储在数据库中的用户名/密码(哈希)使用自定义身份验证。当用户提交表单时,如何让 Java EE Web 容器调用我的 sevlet/bean 方法来执行实际的身份验证?我没有注意到任何地方可以在 web.xml 中为我的代码添加一个挂钩来执行实际的身份验证。
security - Java EE 6 安全性 - 使用用户实体类
我所需要的只是一个简单的登录页面,它将检查一个简单的用户实体类的用户名和密码。Java EE 6 有可能吗?在教程中,他们总是将用户存储在 glassfish 服务器上。
java - 是否可以将容器管理的身份验证与密码加盐一起使用?
我知道如何设置使用表单身份验证和使用摘要密码(例如 SHA-256)的 vanilla 容器管理的安全性。像这样的东西:
web.xml
登录.xhtml
非常简单——但我真正想做的是用全局盐和用户名对密码进行加盐。是的,我知道这并不理想,但现在,我只是在构建一个概念验证。
容器(在这种情况下是 GlassFish 3)可以为我执行此操作,还是我必须编写自己的登录过滤器?我以前做过(针对 J2EE 应用程序),但我的直觉告诉我,既然我使用的是 Java EE 6,就必须有一种更严格的方法来做这件事。
jakarta-ee - Java 服务器代码/Web 服务器中的基本/摘要身份验证实现
我们需要在 Java Web 项目中支持基本身份验证和稍后的摘要身份验证。我的疑问是
- 基本/摘要身份验证是否是 Web 服务器(tomcat、jboss 等)中的配置。我们的用户/密码在 SQL 数据库中,我们通过数据服务获取这些。在这种情况下,我如何配置 Web 服务器以使用数据服务进行身份验证?
- 我是否需要在代码中明确处理基本/摘要身份验证?就像我将收到来自 Servlet 的身份验证请求并连接到数据服务进行身份验证一样?
jsf - 使用 HttpServletRequest 和 LDAP 自动登录
我有一个 JSF Web 应用程序,它使用 cookie 进行自动身份验证,而不提示输入用户名和密码。它使用带有用户名和随机 UUID 的 cookie,并使用 aWebFilter
进行重定向。
当客户端没有 cookie 时,通过HttpServletRequest #login(String username, String password)完成身份验证。在幕后,这种方法使用 JAAS 身份验证,并LDAP
在后面使用服务器。
当我的应用程序通过保存用户 ID 和 UUID 的 cookie 识别用户时,我的问题就出现了。在这个情况下,
- 应用程序不知道密码,因此
HttpServletRequest #login(String username, String password)
无法使用该方法。 - 我应该通过 JNDI 向 LDAP 服务器询问密码吗?乍一看,这似乎是不可能的
- 或者,我可以将密码存储在我的数据库中。但这意味着信息的重复,我不喜欢这样。
- 我见过周围的人只是将属性“角色”设置为会话,但这似乎并不等同于 JAAS 登录。“等效”是指能够使用
isUserInRole()
和getUserPrincipal()
方法。
所以,问题是:在这种情况下我应该如何登录用户?我希望这个问题现在更清楚了。
编辑
为了让代码说话,我添加了一个简化版的 Managed Bean:
java - 如何在 JBoss EAP6/AS7 中的安全约束之前应用过滤器
编辑: 在某些情况下,我使用自定义安全域并手动调用 request.login。我没有使用标准的 FORM 身份验证。
编辑:
似乎我真正想要的是一种使用jboss 中配置的自定义而不是 j_security_check来复制<login-config>
功能的方法。<security-domain>
我需要能够在我的网络应用程序中做两件不同的事情。首先,我需要能够确定用户是否经过身份验证,如果不是,我想将他们重定向到登录页面。我为此使用了过滤器。其次,我需要确定用户是否具有正确的角色才能查看我的 webapp 中的某些页面。看起来 web.xml 文件中的 security-constraint 标记将是这项工作的合适工具,但始终先应用此规则,然后再应用任何过滤器。这意味着用户在被拒绝访问页面之前永远没有机会登录,因为他缺乏适当的角色。
我能想到的唯一解决方案是手动检查过滤器中的用户角色,而不是使用安全约束,但这并不是一个好的解决方案。我想知道这里是否缺少一些东西,因为这似乎是一个非常常见的用例。作为参考,我的过滤器和示例安全约束粘贴在下面。
编辑: 我使用过滤器检查授权的原因是因为您只能为特定错误定义一个错误页面(在这种情况下,403 访问被拒绝)。例如,具有“客户”角色的人尝试访问 searchCustomer 页面。我的安全约束将该页面限制为角色为“admin”或“user”的用户,因此会生成 403 错误并将用户重定向到配置的错误页面 error.xhtml。未登录的第二个用户尝试访问 main.xhtml。因为他没有登录,所以他缺少 3 个允许的角色之一,因此他也收到 403 错误并被重定向到 error.xhtml。但是,因为他没有登录,我宁愿将他重定向到登录页面。
筛选:
glassfish - spnego 身份验证后的 glassfish ldap 授权
我们使用 Apache mod_proxy_http 和 SPNEGO 成功实现了 SSO。在我的 Java EE 6 Web 应用程序中,我使用 request.getRemoteUser() 获得了经过身份验证的用户。
现在什么是授权的最佳方式。我们的目标是通过 LDAP 在我们的 Microsoft AD 中检查用户的特定角色成员身份。使用 glassfish 3.1.2 实现这一目标的最佳方法是什么?
security - Java EE 6 应用程序中的 OpenID - 如何获取用户的 Principal 对象
我第一次在我的应用程序中使用 OpenID 身份验证。我可以针对所选提供者成功验证用户身份,但我不知道如何在 Java EE 服务器上正确登录用户,因此看起来用户已使用例如基于表单的登录方式登录。我可以使用 Servlet 3.0 login
,但它需要用户名/密码对,并且在使用 OpenID 时我没有密码。
我希望能够获得一个Principal
对象并使用isUserInRole
方法等。我错过了什么吗?我在 JBoss 7.1 上运行这个应用程序,但我想应该有一个通用的方法来做到这一点。或者,也许我遗漏了一些东西,Principal
并且在使用 OpenID 时,所有与用户角色相关的东西都以不同的方式完成?