问题标签 [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.
jboss - 可以将 JAAS 登录模块部署在 EAR 中(在 JBoss 5 上)吗?
这个主题几乎总结了这个问题。通常,JAAS 登录模块部署在 EAR 应用程序之外(它使用身份验证服务,但不部署它)。
但是,是否可以在 EAR 中部署它?有一些优点(代码重用,与应用程序更好的集成)。我只对使用该应用程序的模块感兴趣(事实上,该应用程序将是唯一在服务器中运行的应用程序)。
java - 使用基于表单的容器管理安全重试登录
我有一个 Web 应用程序,部署在 GlassFish 3.0.1 上,它使用容器管理的安全性。这是一个简单的、基于标准表单的实现,使用 j_security_check 针对 JDBCRealm。与保护应用程序有关的一切都很好(我不敢相信我过去已经推出了自己的安全系统)。
我似乎无法弄清楚如何处理用户输入错误密码的情况。我的“loginFailed.xhtml”页面显示正确,但我想将用户引导回登录页面(通过链接或自动)再试一次。
当我尝试这样做时,返回 login.xhtml 页面的链接工作正常,但安全系统似乎忘记了在用户通过身份验证后尝试将其发送到何处。当用户正确验证时,会引发异常,因为系统尝试加载不存在的页面(登录页面 URL 的某些损坏版本)。
我想我可以将用户引导回主页并让他们从那里再试一次,但是我很长时间没有看到一个应用程序有这么多杂乱无章的东西。感谢所有的想法和帮助...
tomcat - java.lang.SecurityException:找不到登录配置
您好
我正在使用 Bonita5.2 和 Tomcat6.0.19 我导出了应用程序(它提供了一个战争文件和一些配置文件和库)并部署在 tomcat 中。当我运行应用程序时,在登录页面之后,我得到了错误
在启动 tomcat 之前,我运行了一个包含以下内容的 bat 文件:
我猜这个错误是因为找不到 jaas 配置文件。但我确信我提到的路径。
我还缺少什么来为 jaas 配置?
谢谢
authentication - JAAS LoginModule login() 和 commit() 成功,但用户未登录
我已经实现了一个 LoginModule 来执行一些自定义身份验证,并使用 LoginContext 类的 login() 方法调用身份验证。登录模块的 login() 和 commit() 方法被成功调用,但我无法使用 Web 应用程序,而是立即被发送回登录页面。request.getUserPrincipal() 和 request.getRemoteUser() 为空。
任何想法将不胜感激。谢谢!
附加信息
此外,在我调用loginContext.login()
前端之后,调用loginContext.getSubject().getPrincipals()
会为我提供刚刚登录的用户的正确的主体和角色列表。
我使用 Tomcat 6.0.29 作为我的服务器。
java - 使用 Kerberos 加密凭证/什么是主体的静态机密
用 Java 编写的应用程序需要为每个用户存储外部服务的密码。在应用程序中,用户本身使用 Kerberos 对 KDC 进行身份验证(基本上是使用Jaas创建 LoginContext )。
我想将加密的秘密存储在应用程序位置的某种文件(XML?)中的其他服务中。秘密可以是未启用 Kerberos 的数据库(MySQL ...)的登录名/密码组合。有没有比我建议的更好的方法——也许是一个更好的存储信息的位置?
是否有可能使用 LoginContext 中的一些现有信息来加密数据,只有相同的主题(人或服务)才能解密信息?
更新:
我想稍微改一下这个问题。基本上我需要的是某种秘密,只能由经过身份验证的用户接收。有这样的事情吗?
否则我可能会使用某种主题名称的盐渍哈希作为秘密。我知道这可以猜到,但它为解决方案提供了额外的安全性,例如在什么是保持密码可配置的最佳方法,而不让普通的人类读者太容易获得它们?.
java - 如何将半径添加到 jboss ldap 身份验证?
这是一个很长的镜头,但我认为值得一试。
我们设计了一个在 jboss 上运行并使用 ldap 进行身份验证的 java servlet(编辑:通过 JAAS)。现在,客户希望为一些使用一次性生成密码的用户更改为 radius 身份验证。但仍然只有两个登录字段;用户名和密码。由于我们仍然需要来自 ldap 的用户信息,这是否可能在不牺牲安全性的情况下实现?我仍然需要在 ldap 中进行身份验证以获取用户上下文。但没有密码,我不知道如何。我可以为某些用户设置 ldap 联系半径吗?也许我应该说不,让他们在登录 ldap 后接受三个字段和对半径的额外检查。
security - 为什么 Tomcat 管理器使用我的 LoginModule?
我正在运行 Tomcat 6.0.29 并创建了自己的领域和登录模块。它们在 server.xml 中定义如下:
<Realm className="mycompany.tomcat.MyRepositoryRealm"
appName="My_Realm"
userClassNames="mycompany.tomcat.IdentityPrincipal"
roleClassNames="mycompany.tomcat.RolePrincipal"
useContextClassLoader="true"/>
我已将包含这些类的库添加到我的 tomcat/lib 文件夹中。除此之外,我没有改变 Tomcat 的默认配置。
当我在 启动 Tomcat 管理器应用程序时http://localhost:9080/manager/html
,我无法登录,并且 tomcat 日志显示我的登录模块的错误和堆栈跟踪。
有任何想法吗?谢谢!
编辑:
根据请求,这里是堆栈跟踪。我的领域连接到 JBoss 服务,这就是我收到 NamingContextFactory 错误的原因。
javax.security.auth.login.LoginException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory
at mycompany.tomcat.MyRepositoryLoginModule.login(MyRepositoryLoginModule.java:88)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769)
at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
at javax.security.auth.login.LoginContext.login(LoginContext.java:579)
at org.apache.catalina.realm.JAASRealm.authenticate(JAASRealm.java:410)
at org.apache.catalina.realm.JAASRealm.authenticate(JAASRealm.java:335)
at mycompany.tomcat.MyRepositoryRealm.authenticate(MyRepositoryRealm.java:34)
at org.apache.catalina.authenticator.BasicAuthenticator.authenticate(BasicAuthenticator.java:181)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:528)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
java - JAX-WS 与 SAAJ 风格,使用哪个
使用 Service 和 Dispatch 类从 Java 代码调用 Web 服务与 SOAPConnection 类在哲学上或其他方面有什么区别?
例如,像这样:
与这些大致相同的东西?
这些之间有什么区别,为什么选择一种方法而不是另一种方法?
tomcat - Tomcat/JAAS - 查找数据源
我们有一个新编写的 JAAS 模块,想知道在哪里放置 DataSource 对象的数据库连接设置。
通常在 Tomcat Web 应用程序中,这将在“web.xml”文件中引用以指向位于“$catalina_home/conf/Catalina/localhost”中的 XML 文件。
我们可以在哪里为 JAAS 模块(部署在 Tomcat 中)放置类似的配置?
谢谢。