问题标签 [jaas]
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.
java - Java JEE5 应用程序。具有 Windows 身份验证且不提示输入用户名和密码的客户端
我们有 JAVA JEE5 企业应用程序,由一个 web 模块和一个在 glassfish 上运行的应用程序客户端组成。
我们需要针对活动目录设置身份验证。我知道为 Web 模块或应用程序客户端模块设置基于 LDAP 的身份验证很容易,但他们要求我们在启动应用程序客户端时从 Windows 登录中获取凭据,并且凭据以某种方式传播到 ejb像往常一样分层。这不仅包括用户主体,还包括角色。
简而言之,我的问题是:JAAS 是否可以在不提示用户输入用户名和密码的情况下插入桌面客户端的 Windows 身份验证机制?
谢谢,巴勃罗。
java - j_security_check - can additional parameters be passed for form submits?
Is it possible to pass additional parameters with 'j_security_check' in place?
I would like to pass the the ip address from the login page plus other parameters.
java - 检索在运行时执行 java.security.PrivilegedAction 的主题
我正在尝试检索当前在 JAAS 框架下执行特权操作的主题,以便能够提取其主体。基本上,我需要在运行时验证特权操作确实由有权这样做的委托人执行。
或者,换一种说法:是否可以在运行时获取当前的 LoginContext 作为某种系统属性(而不是通过创建新属性)?这将很容易允许提取主题。
java - JMX-RMI/T3 连接导致 CallbackHandler 在存在 ContextHandlerCallback 的情况下抛出异常
我在 Weblogic 10.3 中有一个自定义身份验证器,我正在使用并遇到问题。
当用户通过 HTTP 连接和验证时,一切正常。但是,如果连接是 JMX-RMI/T3 连接,javax.security.auth.callback.CallbackHandler.handle
则会引发对异常的调用。ContextHandlerCallback
正在使用默认构造函数,并在带有用户名和密码回调的回调数组中传递。下面是 callbackHandler 是javax.security.auth.callback.CallbackHandler的代码
这是从上面抛出的异常的顶部callbackHandler.handle(callbacks)
:
这是我们也看到的另一个异常跟踪:
值得注意的是,如果用户通过 JMX/T3 连接进行身份验证但 HTTP 工作正常,则会引发此异常。
我们试图实现的部分目标是捕获有关身份验证的信息,例如请求源自的 IP 地址,这就是我们需要ContextHandlerCallback
. 我可以看到尝试HttpServletRequest
从 JMX-RMI/T3 连接中检索一个可能会导致问题,但在 javax.security.auth.callback.CallbackHandler.handle() 期间会引发异常。
其他一些可能相关或不相关的信息,但为什么不尽我所能?
- 应用程序正在使用基于表单的身份验证,WS 调用也是如此,但 JMX-RMI/T3 调用可能不会。
- 不确定是否可以在进行身份验证时定义用于 CallbackHandler 的实现。目前我们已经定义了一个自定义的 LoginModule,但没有定义一个自定义的 CallbackHandler。
- 如果在 ContextHandlerCallback 之外有一种方法可以访问 LoginModule 内的调用者的 IP 地址,那么这将提供一个合适的解决方法。
我很困惑为什么它会通过一种协议而不是另一种协议工作。还有其他人看到过这种行为或知道处理这种情况的方法吗?
谢谢,托德
java - 如何为每个 webapp 定义 Tomcat 安全领域
将 JAAS JDBCRealms 与 Tomcat 一起使用时,我通常在server.xml
. 但是现在我正在寻找一个更简单的解决方案,我在部署应用程序时不必配置 Tomcat 容器。
如果可能,我想将所有 JAAS 配置保留在 web.xml 中,并且只定义每个应用程序/webapp 的领域。
一个线程提到他通过在META-INF/context.xml
webapp 中定义领域来做到这一点。但我无法让它工作(为什么 Tomcat 管理器使用我的 LoginModule?)。
请帮我在 .war 中找到正确的位置来定义一个org.apache.catalina.realm.JDBCRealm
然后用于该 webapp 的位置。
java - 带有 servlet 的 JAAS
我正在尝试将 JAAS 用于我的 servlet 应用程序。我可以获得一个基本的 JAAS 简单身份验证(非 servlet)工作。
但是使用 servlet 我在哪里设置这个变量?-Djava.security.auth.login.config=test_jaas.config
我还尝试按照此页面http://www.kopz.org/public/documents/tomcat/jaasintomcat.html将 JVM_OPTS 导出到此
但是在创建 LoginContex 时,我仍然不断收到“未配置 LoginModules”。
任何帮助表示赞赏。
security - 使用容器管理身份验证时如何在 JSF 中获取登录用户名
我已经使用自定义领域在 GlassFish 3 服务器上的 JSF 2.0 应用程序中配置了基于表单的登录。获取有关登录用户的信息(即用户名)的最简单方法是什么。
这可能吗?还是当前会话仅与安全角色相关联?如果是这样,是否有某种方法可以在不更改登录配置的情况下实现这一点?
简而言之,我想要的是显示一条简单的消息,例如:
以用户名登录
在我的网页上。
jboss - 当用户的角色发生变化时,HTTP BasicAuthentication 不会立即实现。我能做些什么呢?
我在 JBossAS 5.1 GA 上部署了一个 Web 服务。要使用 HTTP 基本身份验证,SBC 类的注释方式如下:
通常这工作正常。但是下面的情景让我很困扰。
角色 WebserviceUser 的用户调用该服务。
Webservice 角色现在已从用户手中夺走。
问题:他仍然可以调用服务。
我猜会发生这种情况,因为用户凭据和角色存储在服务器端的 HttpSession 对象中。服务器重新启动后,用户被拒绝调用服务。
我能做些什么呢?
问候
编辑:该问题不仅适用于 JBOSSWS EJB3 webservices,还适用于任何使用 JAAS 身份验证的东西。
ldap - Glassfish 和 OpenDS 的上次登录时间 - 缓存了 LDAP 凭据?
我已将 Glassfish 3.0 配置为使用 OpenDS 2.2 目录使用 ldap 领域进行用户身份验证。用户身份验证工作正常(我正在使用配置了表单登录的 Web 应用程序),但是我注意到以下行为,但我不明白是什么原因造成的:
- 我的 OpenDS 服务器配置为使用属性 ds-pwp-last-login-time 跟踪用户的上次登录时间(在用户的密码策略中配置);Glassfish 启动后用户第一次登录时,ds-pwp-last-login-time 属性设置正确,但是每次后续成功登录后该属性都不会更新
- 重新启动 Glassfish 或禁用/启用我正在使用的 Web 应用程序后,属性 ds-pwp-last-login-time 在用户第一次登录时再次正确设置,但随后不再设置
我认为造成这种情况的可能原因是:
- 在服务器/应用程序重新启动后的首次登录期间,服务器会执行一个步骤,导致更新 ds-pwp-last-login-time 属性,但后续登录情况并非如此
- Glassfish 保留已使用 ldap 领域对服务器进行身份验证的用户的本地缓存
我检查了将安全记录器设置为 FINEST 的服务器日志,我发现在每个单个用户的第一次登录期间,输出以下行
有谁知道如何配置 Glassfish/OpenDS 以便在每次成功登录后正确设置 ds-pwp-last-login-time 属性?有谁知道服务器日志中显示的为权限检查生成保护域部分在做什么?