问题标签 [realm]

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.

0 投票
2 回答
1660 浏览

tomcat - 使用 md5 和 salt 和 j 安全检查

现在我正在使用 j 安全检查和 md5 来验证我的 jsp 页面。我想在将密码存储到数据库之前对其进行加盐。由于在学校限制访问,我无权创建一个触发器来注入一些盐。有没有其他方法可以做到这一点?

这是我的领域:

0 投票
1 回答
5035 浏览

jakarta-ee - Glassfish 无法启动,如何重置 glassfish 实例?

我通过管理控制台对我的 glassfish jdbc 资源池进行了更改,我的最后一个更改是一个领域配置,我将用户表字段从“tablename”重命名为“db”。“tablename”作为尝试让 jdbcrealm auth 使用一个德比数据库,但现在我的 glassfish 实例无法启动。我已经卸载并重新安装了 netbeans 和 glassfish,目前出现此错误:

有没有办法将我的 glassfish 实例重置为其默认值,以便我可以再次开始使用它?

0 投票
3 回答
786 浏览

web-services - 如何在 Tomcat Servlet Container 中对 webapp 请求进行身份验证和授权

在 Tomcat Servlet Container 中对 webapp 请求进行身份验证和授权的最佳方法是什么?

我有两个想法,

1 - 使用 Tomcat 领域。2 - 有一个 Web 服务,它提供了根据 XACML 策略评估用户请求的能力。这意味着如果我们将用户名、资源名(这里是 servlet)发送到该 Web 服务,它将根据 XACML 策略(我们可以更改或添加新策略)评估请求并说允许或拒绝。

什么是最好的方法 ?

0 投票
1 回答
1174 浏览

glassfish - Glassfish 在领域身份验证中创建多个 http 会话

我有一个关于领域身份验证的问题,其中 glassfish 创建了多个 http 会话。这是一个例子

Web.xml:

glassfish-web.xml:

登录.jsp:

会话监听器:

@WebListener 公共类 SessionListener 实现 HttpSessionListener {

公共无效会话创建(HttpSessionEvent arg0){

System.out.println("会话创建id:"+arg0.getSession().getId());
}

公共无效会话销毁(HttpSessionEvent arg0){

}

}

当我进行身份验证时,glassfish 创建一个新会话:

信息:会话创建 ID:29c5d904db0e40b9cfbdac40aa5e

当我点击“回家”链接或刷新页面时,glassfish 会创建另一个 http 会话:

信息:会话创建 ID:2a67270137e38c150bf3690e2e46

而且我还注意到 glassfish 永远不会破坏第一个创建的会话。

谢谢你的帮助

0 投票
2 回答
2879 浏览

eclipse - 无法在 tomcat(7) 运行时更改 tomcat-users.xml 和 server.xml **within** eclipse(juno)

我今天遇到了一个问题,我希望有人可以为我回答/解释。我试图向 tomcat-users.xml 添加一个新角色和新用户,并向 server.xml 添加一个领域,以在我正在玩的一个小型 Web 应用程序中测试一些基本身份验证。我在基本 tomcat 目录中进行了更改,然后尝试使用新角色登录。似乎没有任何效果。我刚刚发现 Eclipse 在我创建服务器实例时创建了一个新的 tomcat-users.xml 和 server.xml,所以我想我只需在其中添加我的新用户(和领域),一切都会好起来的;但是,当我更改这些文件时,它不会应用于服务器。我重新启动了 eclipse,它将两个文件都更改为默认值。我在某处读到了这个可怕的解决方法,删除了 eclipse 中的 tomcat-reinstall tomcat,它将最新的 tomcat-users.xml 导入到 eclipse 中。我的问题是:有没有办法从eclipse改变tomcat用户?如果没有,除了删除服务器还有其他解决方案吗?

谢谢

检查出来在此处输入图像描述

0 投票
1 回答
1036 浏览

maven - 本地主机的 Tomcat 领域安全约束禁用

我添加了安全约束来保护应用程序的某些文件夹。

我向 tomcat-users 添加了适当的用户 SUPER,当我部署应用程序时,这一切似乎都运行良好。但是,当我通过 maven 从 exclipse 本地运行它时,使用 tomcat7:run,我的本地设置没有 tomcat-users.xml 文件,所以基本上我不确定如何在本地配置用户。安全有效,但未定义用户。

你能告诉我如何为 mavens tomcat 插件传递或指定自定义 tomcat-sers.xml 文件吗

0 投票
1 回答
595 浏览

security - 如何以管理员身份从 Glassfish 定义登录模块?

我目前正在实现一个由 neo4j DB 支持的 Glassfish 领域,为此我定义了一个Realm和一个LoginModule类。

我可以使用create-auth-realm asadmin命令安装领域。但是只有当它与文件LoginModule中定义的相关联时,Glassfish 才能识别该领域config/login.conf

例如,就我而言,我必须执行以下操作:

  1. 创建身份验证领域:
    create-auth-realm --classname com.mycompany.security.MyRealm --property jaas-context=MyLoginModule myrealm
    然后

  2. MyLoginModule在该config/login.conf文件中定义:

    /li>

我可以login.conf手动编辑文件,但想使用 asadmin 命令自动执行此步骤。
你知道这样的 asadmin 命令吗?

0 投票
2 回答
719 浏览

web-applications - 如何使用领域清除凭据?

我真的很想知道realm的用法。 http://en.wikipedia.org/wiki/Basic_access_authentication

现有浏览器会保留身份验证信息,直到关闭选项卡或浏览器或用户清除历史记录。 [1] HTTP 没有为服务器提供一种方法来指导客户端丢弃这些缓存的凭据。这意味着服务器无法在不关闭浏览器或使用 URL 中的会话的情况下“注销”用户的有效方法。

在我的编码中

因此该站点请求基于领域的身份验证。一旦它请求,用户名和密码就会保存在某个地方,直到浏览器缓存或浏览历史被删除,这些信息才会被保存。

我的问题是有没有办法使用 servlet 清除服务器中的此类凭据? 任何帮助是极大的赞赏!!!

参考: REALM 术语在安全性中的确切用途是什么?

0 投票
1 回答
950 浏览

glassfish-3 - 创建自定义 Glassfish V3 领域

我正在尝试为 Glassfish V3.1.1 创建自定义领域,但是当我使用 BASIC 方法登录时出现了一些 LoginException:

[#|2012-10-11T22:57:21.625+0200|FINE|glassfish3.1.2|org.apache.catalina.authenticator.AuthenticatorBase|_ThreadID=35;_ThreadName=Thread-2;ClassName=org.apache.catalina.authenticator .AuthenticatorBase;MethodName=invoke;|安全检查请求 GET /testForMySimRealm/S1|#]

[#|2012-10-11T22:57:21.625+0200|FINE|glassfish3.1.2|org.apache.catalina.authenticator.AuthenticatorBase|_ThreadID=35;_ThreadName=Thread-2;ClassName=org.apache.catalina.authenticator .AuthenticatorBase;方法名=调用;| 调用 hasUserDataPermission()|#]

[#|2012-10-11T22:57:21.625+0200|FINE|glassfish3.1.2|javax.enterprise.system.container.web.com.sun.web.security|_ThreadID=35;_ThreadName=Thread-2;ClassName =com.sun.web.security.RealmAdapter;MethodName=hasUserDataPermission;|[Web-Security][ hasUserDataPermission ] 主体:空 ContextPath:/testForMySimRealm|#]

[#|2012-10-11T22:57:21.625+0200|FINE|glassfish3.1.2|javax.enterprise.system.container.web.com.sun.web.security|_ThreadID=35;_ThreadName=Thread-2;ClassName =com.sun.web.security.RealmAdapter;MethodName=invokeWebSecurityManager;|[Web-Security] [ hasResourcePermission ] 主体:空 ContextPath:/testForMySimRealm|#]

[#|2012-10-11T22:57:21.625+0200|FINE|glassfish3.1.2|org.apache.catalina.authenticator.AuthenticatorBase|_ThreadID=35;_ThreadName=Thread-2;ClassName=org.apache.catalina.authenticator .AuthenticatorBase;方法名=调用;| 调用 authenticate()|#]

[#|2012-10-11T22:57:21.640+0200|FINE|glassfish3.1.2|org.apache.catalina.authenticator.AuthenticatorBase|_ThreadID=35;_ThreadName=Thread-2;ClassName=org.apache.catalina.authenticator .AuthenticatorBase;方法名=调用;| 验证失败()测试|#]

[#|2012-10-11T22:57:21.640+0200|FINE|glassfish3.1.2|org.apache.catalina.connector.OutputBuffer|_ThreadID=35;_ThreadName=Thread-2;ClassName=org.apache.catalina.connector .OutputBuffer;MethodName=setConverter;|得到编码:ISO-8859-1|#]

[#|2012-10-11T22:57:21.640+0200|FINE|glassfish3.1.2|org.apache.catalina.connector.OutputBuffer|_ThreadID=35;_ThreadName=Thread-2;ClassName=org.apache.catalina.connector .OutputBuffer;MethodName=realWriteBytes;|realWrite(b, 0, 1073) com.sun.grizzly.tcp.Response@192d307|#]

[#|2012-10-11T22:57:21.640+0200|FINEST|glassfish3.1.2|org.apache.catalina.connector.InputBuffer|_ThreadID=35;_ThreadName=Thread-2;ClassName=org.apache.catalina.connector .InputBuffer;MethodName=recycle;|recycle()|#]

[#|2012-10-11T22:57:21.640+0200|FINE|glassfish3.1.2|org.apache.catalina.connector.OutputBuffer|_ThreadID=35;_ThreadName=Thread-2;ClassName=org.apache.catalina.connector .OutputBuffer;MethodName=recycle;|recycle()|#]

[#|2012-10-11T22:57:24.625+0200|FINE|glassfish3.1.2|org.apache.catalina.authenticator.AuthenticatorBase|_ThreadID=36;_ThreadName=Thread-2;ClassName=org.apache.catalina.authenticator .AuthenticatorBase;MethodName=invoke;|安全检查请求 GET /testForMySimRealm/S1|#]

[#|2012-10-11T22:57:24.625+0200|FINE|glassfish3.1.2|org.apache.catalina.authenticator.AuthenticatorBase|_ThreadID=36;_ThreadName=Thread-2;ClassName=org.apache.catalina.authenticator .AuthenticatorBase;方法名=调用;| 调用 hasUserDataPermission()|#]

[#|2012-10-11T22:57:24.625+0200|FINE|glassfish3.1.2|javax.enterprise.system.container.web.com.sun.web.security|_ThreadID=36;_ThreadName=Thread-2;ClassName =com.sun.web.security.RealmAdapter;MethodName=hasUserDataPermission;|[Web-Security][ hasUserDataPermission ] 主体:空 ContextPath:/testForMySimRealm|#]

[#|2012-10-11T22:57:24.625+0200|FINE|glassfish3.1.2|javax.enterprise.system.container.web.com.sun.web.security|_ThreadID=36;_ThreadName=Thread-2;ClassName =com.sun.web.security.RealmAdapter;MethodName=invokeWebSecurityManager;|[Web-Security] [ hasResourcePermission ] 主体:空 ContextPath:/testForMySimRealm|#]

[#|2012-10-11T22:57:24.625+0200|FINE|glassfish3.1.2|org.apache.catalina.authenticator.AuthenticatorBase|_ThreadID=36;_ThreadName=Thread-2;ClassName=org.apache.catalina.authenticator .AuthenticatorBase;方法名=调用;| 调用 authenticate()|#]

[#|2012-10-11T22:57:24.625+0200|FINE|glassfish3.1.2|javax.enterprise.system.container.web.com.sun.web.security|_ThreadID=36;_ThreadName=Thread-2;ClassName =com.sun.web.security.RealmAdapter;MethodName=authenticate;|用于验证用户/密码的Tomcat回调|#]

[#|2012-10-11T22:57:24.625+0200|FINE|glassfish3.1.2|javax.enterprise.system.container.web.com.sun.web.security|_ThreadID=36;_ThreadName=Thread-2;ClassName =com.sun.web.security.RealmAdapter;MethodName=authenticate;|usename = j|#]

[#|2012-10-11T22:57:24.625+0200|警告|glassfish3.1.2|javax.enterprise.system.container.web.com.sun.web.security|_ThreadID=36;_ThreadName=Thread-2;| WEB9102:Web 登录失败:com.sun.enterprise.security.auth.login.common.LoginException:登录失败:Entrée NULL 无效:nom|#]

[#|2012-10-11T22:57:24.625+0200|FINE|glassfish3.1.2|javax.enterprise.system.container.web.com.sun.web.security|_ThreadID=36;_ThreadName=Thread-2;ClassName =com.sun.web.security.RealmAdapter;MethodName=authenticate;|Exception com.sun.enterprise.security.auth.login.common.LoginException: Login failed: Entrée NULL non valide: nom at com.sun.enterprise.security .auth.login.LoginContextDriver.doPasswordLogin(LoginContextDriver.java:394) 在 com.sun.enterprise.security.auth.login.LoginContextDriver.login(LoginContextDriver.java:240) 在 com.sun.enterprise.security.auth.login .LoginContextDriver.login(LoginContextDriver.java:153) 在 com.sun.web.security.RealmAdapter.authenticate(RealmAdapter.java:514) 在 com.sun.web.security.RealmAdapter.authenticate(RealmAdapter.java:455) 在org.apache.catalina.authenticator。BasicAuthenticator.authenticate(BasicAuthenticator.java:169) at com.sun.web.security.RealmAdapter.invokeAuthenticateDelegate(RealmAdapter.java:1333) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:551) at org .apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:623) 在 org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve .java:161) 在 org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231) 在 com.sun.enterprise。 v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317) 位于 com.sun.enterprise.v3.services.impl.ContainerMapper。com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860) com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757) com.sun 的服务(ContainerMapper.java:195) .grizzly.http.ProcessorTask.process(ProcessorTask.java:1056) 在 com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229) 在 com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137 ) 在 com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) 在 com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) 在 com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain. java:79) 在 com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) 在 com.sun.grizzly.SelectionKeyContextTask。在 com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) 在 com.sun 的 com.sun.grizzly.ContextTask.run(ContextTask.java:71) 调用(SelectionKeyContextTask.java:59) .grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) at java.lang.Thread.run(Thread.java:722) 原因:javax.security.auth.login.LoginException:Entrée NULL 无效:在 javax.security.auth.login.LoginContext.init(LoginContext.java:246) 在 javax.security.auth.login.LoginContext.(LoginContext.java:382) 在 javax.security.auth.login.LoginContext.( LoginContext.java:459) 在 com.sun.enterprise.security.auth.login.LoginContextDriver.doPasswordLogin(LoginContextDriver.java:381) ... 28 更多 |#]71) 在 com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) 在 java.lang.Thread 的 com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) .run(Thread.java:722) 引起:javax.security.auth.login.LoginException: Entrée NULL non valide : nom at javax.security.auth.login.LoginContext.init(LoginContext.java:246) at javax。 security.auth.login.LoginContext.(LoginContext.java:382) at javax.security.auth.login.LoginContext.(LoginContext.java:459) at com.sun.enterprise.security.auth.login.LoginContextDriver.doPasswordLogin( LoginContextDriver.java:381) ... 28 更多 |#]71) 在 com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) 在 java.lang.Thread 的 com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) .run(Thread.java:722) 引起:javax.security.auth.login.LoginException: Entrée NULL non valide : nom at javax.security.auth.login.LoginContext.init(LoginContext.java:246) at javax。 security.auth.login.LoginContext.(LoginContext.java:382) at javax.security.auth.login.LoginContext.(LoginContext.java:459) at com.sun.enterprise.security.auth.login.LoginContextDriver.doPasswordLogin( LoginContextDriver.java:381) ... 28 更多 |#]运行(Thread.java:722)引起:javax.security.auth.login.LoginException:Entrée NULL non valide:在 javax.security.auth.login.LoginContext.init(LoginContext.java:246) 在 javax.security .auth.login.LoginContext.(LoginContext.java:382) 在 javax.security.auth.login.LoginContext.(LoginContext.java:459) 在 com.sun.enterprise.security.auth.login.LoginContextDriver.doPasswordLogin(LoginContextDriver .java:381) ... 还有 28 个 |#]运行(Thread.java:722)引起:javax.security.auth.login.LoginException:Entrée NULL non valide:在 javax.security.auth.login.LoginContext.init(LoginContext.java:246) 在 javax.security .auth.login.LoginContext.(LoginContext.java:382) 在 javax.security.auth.login.LoginContext.(LoginContext.java:459) 在 com.sun.enterprise.security.auth.login.LoginContextDriver.doPasswordLogin(LoginContextDriver .java:381) ... 还有 28 个 |#]doPasswordLogin(LoginContextDriver.java:381) ... 28 更多 |#]doPasswordLogin(LoginContextDriver.java:381) ... 28 更多 |#]

[#|2012-10-11T22:57:24.625+0200|FINE|glassfish3.1.2|org.apache.catalina.authenticator.AuthenticatorBase|_ThreadID=36;_ThreadName=Thread-2;ClassName=org.apache.catalina.authenticator .AuthenticatorBase;方法名=调用;| 验证失败()测试|#]

[#|2012-10-11T22:57:24.625+0200|FINE|glassfish3.1.2|org.apache.catalina.connector.OutputBuffer|_ThreadID=36;_ThreadName=Thread-2;ClassName=org.apache.catalina.connector .OutputBuffer;MethodName=setConverter;|得到编码:ISO-8859-1|#]

[#|2012-10-11T22:57:24.625+0200|FINE|glassfish3.1.2|org.apache.catalina.connector.OutputBuffer|_ThreadID=36;_ThreadName=Thread-2;ClassName=org.apache.catalina.connector .OutputBuffer;MethodName=realWriteBytes;|realWrite(b, 0, 1073) com.sun.grizzly.tcp.Response@7e592c|#]

[#|2012-10-11T22:57:24.625+0200|FINEST|glassfish3.1.2|org.apache.catalina.connector.InputBuffer|_ThreadID=36;_ThreadName=Thread-2;ClassName=org.apache.catalina.connector .InputBuffer;MethodName=recycle;|recycle()|#]

[#|2012-10-11T22:57:24.625+0200|FINE|glassfish3.1.2|org.apache.catalina.connector.OutputBuffer|_ThreadID=36;_ThreadName=Thread-2;ClassName=org.apache.catalina.connector .OutputBuffer;MethodName=recycle;|recycle()|#]

这是我的领域课程:

CustomSimLoginModule 扩展 AppservPasswordLoginModule :

}

CustomSimRealm 扩展 AppservRealm :

这 2 个类使用 maven 打包到 JAR 文件中,并具有以下依赖项:

JAR 文件被复制到 ${GLASSFISH}/glassfish/domains/domain1/lib 目录中,我将 login.conf 更改为:

和 domain.xml :

Glassfish 启动时未引发异常,但在用户输入凭据时会引发上述异常。

请问我做错了什么?

PS:没有使用 Glassfish create-auth-realm 命令,我手动更改了 login.conf 和 domain.xml,这可能是问题吗?

感谢您的想法

奥利维尔

0 投票
1 回答
3029 浏览

active-directory - 活动目录的领域配置

我想对希望通过 Active Directory 访问特定资源的用户进行身份验证。我使用 JSF 2.1 和 Glassfish 3.1.2。我试试 这个这个这个,但它对我不起作用。用户无法登录。始终将我重定向到错误页面。

domain.xml 片段:

WIN-AK5HJBX4R4G - 它是我的虚拟服务器的默认名称(可以是 192.168.56.101 或只是 localhost。因为 webapp 部署在此服务器上并不意味着它的命名方式,AD 也在此服务器上)。

我尝试了某些形式的 search-bind-dn,例如:

没有任何工作。用户仍然无法登录。

web.xml 片段:

glassfish-web.xml 片段:

我还添加-Djava.naming.referral=follow了 JVM 选项。

  1. 如果可能的话,我在哪里可以检查任何异常或错误等“连接到服务器失败”或“密码或登录错误”?有日志文件吗?或者是其他东西?
  2. 我错过了配置文件中的某些内容吗?