问题标签 [container-managed]

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 回答
758 浏览

security - 如何在使用容器管理的安全性时从数据库中检索用户名、密码和角色,而不是从 tomcat-user.xml 中检索它们

我有一个部署在 Tomcat 中的 Web 应用程序。我想保护 url 路径管理/*下的所有页面。

我已经设置了容器管理的安全性,在 web.xml 文件中输入了下一个片段:

在 $CATALINA_HOME/conf/tomcat-users.xml 我有

一切正常。我得到一个登录框,我可以将自己验证为 userA。

但是,我希望能够通过使用 Web 应用程序直接存储新用户、更改用户密码等。

是否可以通过其他方式告诉 tomcat 获取用户、密码和角色?例如从数据库中检索它们的类。

0 投票
7 回答
357 浏览

c++ - 帮助我使这段代码异常安全

所以我有这个库代码,看...

在我的客户代码中......

我坚持的是异常安全。就目前而言,如果任何 Obj 构造函数抛出,或者 Thing 构造函数抛出,已经在向量中的 Objs 将会泄漏。向量需要包含指向 Objs 的指针,因为它们被多态地使用。而且,我需要在这里处理任何异常,因为这是从不知道异常的旧代码库中调用的。

在我看来,我的选择是:

  1. 将客户端代码包装在一个巨大的 try 块中,并清理 catch 块中的向量。
  2. 在所有分配周围放置 try 块,其中的 catch 块调用公共清理函数。
  3. 一些我还没有想到的基于 RAII 的聪明想法。
  4. 平底船。实际上,如果构造函数抛出异常,应用程序无论如何都会陷入火海,但我想更优雅地处理这个问题。
0 投票
1 回答
660 浏览

java - 使用 web.xml 之外的容器管理安全配置安全约束的替代方法?

如果您使用 Java EE 6 容器管理的安全性,您可以为 web.xml 部署描述符中的资源配置安全约束。有没有其他方法可以做到这一点?

例如,容器可以从数据库中获取它们,就像处理用户数据一样。

这样的事情可能吗?我想要一种不需要重新部署 webapp 的方法。

提前致谢。

0 投票
1 回答
2238 浏览

java - 如何从容器管理的事务提交中捕获异常?

我有一个@Stateless带有@WebService接口的 EJB,使用容器管理的事务,这意味着事务在调用方法后由容器自动提交,如果它不引发系统异常。

如果我尝试对EntityManager.persist(...)具有唯一约束的列使用具有相同值的两个对象,则容器将PersistenceException在我的代码之外提交时向客户端抛出一个。我如何捕捉这个异常,以便我可以重新抛出我自己的应用程序异常?

我是否必须在我的方法中手动提交事务才能在提交时捕获异常?(EntityManager.flush()这样做是正确的方法吗?)如果是这样,容器管理事务的意义何在?

0 投票
2 回答
11721 浏览

java - Weblogic 10.3:在 WLS 控制台中使用 web.xml 和 DB 角色的 Webapp 安全性

设想

我们正在使用 Weblogic Server 10.3.4 运行我们的 web 应用程序,该应用程序启用了安全约束,以要求用户在他/她可以使用该应用程序之前登录。用户和组信息应驻留在应用程序数据库中,身份验证应由 WLS(容器)处理。

我已经按照这篇博客文章中的描述设置了一个数据库模式,在 WLS 控制台中设置了一个新的安全领域“app.realm”并在SQLAuthenticator其中定义了一个。

重新启动 WLS 后,我可以在 WLS Web 控制台的“app.realm”中的数据库中看到我的用户和组定义。我尝试验证的用户是该WEBAPP_USER组的成员(我在 WLS 控制台的用户详细信息页面上看到了组成员身份)。

当我部署应用程序(使用标准设置,未在 WLS Web 控制台中进行调整)并调用受保护的 URL 时,我会login.html按预期重定向到表单。但是,无论我尝试什么,输入(正确的)密码总是会导致身份验证失败,将我发送到该login_error.html页面。出于调试目的,我在我的 中启用了纯文本密码SQLAuthenticator,所以我很确定使用了正确的凭据。

我已经看到了 两个线程,但似乎都没有帮助解决我的问题。

更新 1

感谢 emzy 的评论,我现在看到 WLS 正在根据默认领域“myrealm”检查凭据,并尝试根据嵌入式 LDAP 解析登录用户名:

更新 2

我现在执行了这些步骤并使身份验证工作:

  • 在 WLS 控制台中添加SQLAuthenticator到默认领域“myrealm”
  • 在各自的提供程序设置中设置 WeblogicDefaultAuthenticator和新SQLAuthenticatorSUFFICIENT(“JAAS 控制标志”他们如何称呼它)
  • 重启 WLS

不过,还有一个问题:

问题

  • 除了文件夹中的标准日志文件之外,WLS 是否还有一些额外的日志记录<domain>/server/AdminServer/logs,我可以在其中看到发生了什么?
  • 我做错了什么/为了让我的基于表单的身份验证与我的应用程序一起工作,我错过了难题的哪一部分?
  • 当我在我的 中明确给出“app.realm”时,为什么 WLS 使用“myrealm”进行身份验证web.xml

这是我的配置详细信息:

web.xml

weblogic.xml

登录.html

0 投票
1 回答
972 浏览

transactions - EJB 中的一些 CMT 和 BMT 疑虑?

在会话 bean 中使用 CMT 时,我们在哪里提交事务?

使用 REQUIRES_NEW 属性容器创建一个新事务,调用者事务被挂起只要更好地理解 REQUIRES_NEW ,它是否通过将事务与新连接关联来实现上述行为。一旦完成当前事务,它会假设以前的连接?当新事务发生提交时?

有人可以指出我使用 JDBC 的会话 bean 的简要 eamxple CMT 和 BMT。基本上看我们如何在 CMT 和 BMT 中获得连接、提交、回滚

在 CMT 中,事务管理器完成与当前线程关联的事务。我的问题是它如何提交事务。我知道使用连接提交事务,但在这里如何知道与当前线程关联的连接,如在一个示例中,我看到使用 new 运算符在方法内创建连接。

0 投票
1 回答
2776 浏览

java - 受保护的 URL 将 webapge 的未受保护组件泄露给未经身份验证的用户

<login-config>我相信通过++<security-constraint><security-role>通过使用实现 JSF 应用程序的安全性<filter>是两种不同的方式!?他们是吗?

我尝试通过上面的第一种方法(使用 <login-config>+ <security-constraint>+ <security-role>)实现安全性,但发现我的受保护网页同时使用受保护和不受保护的 HTML 组件,甚至向未经身份验证的用户提供了不受保护的资源。

我需要完全保护 URL,以便受保护的 URL 甚至不会将该网页的任何部分泄露给未经身份验证的用户。我该怎么做?

而且,安全实施是否<filter>web.xml自我管理的方式来处理安全问题?我相信然后您可以在过滤/捕获每个请求时更细粒度地自定义安全性?

0 投票
1 回答
1635 浏览

hibernate - Glassfish/Hibernate 保存而不显式调用保存

我正在使用 Glassfish 2 和容器管理的持久性以及 Hibernate 3.2 作为持久性提供程序。我的业务逻辑中有一些 finder 方法,它操作一些持久实体,这些实体是通过EntityManager. 操作只是更改一个String属性(从集合中删除一个元素会导致相同的效果)。
不会我的EntityManager. 我只想将一些更改的实体返回给我的客户。

似乎当容器提交事务时,对我的实体的更改会自动保存。到目前为止我是否完全错过了一些神奇的 Hibernate 或 Glassfish 行为?

0 投票
1 回答
587 浏览

java - .NET 4.0 是否有类似于 Java 中的容器管理事务?

当然,有事务范围,但也有这样的:

http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Transaction3.html

0 投票
1 回答
495 浏览

java - Java 容器管理的安全性未重定向到登录页面

我有一个在 GlassFish 3 上构建的 JSF 2 Web 应用程序。我正在使用容器管理的安全性来处理登录。我的网络应用程序中的每个页面都需要安全。所有页面与登录页面一起位于根目录中。问题是当我输入一个 URL 以直接访问受保护的页面时,即使用户未登录,它也会显示。我希望我网站上的每个页面都受到保护,但登录页面除外,因此用户必须访问该站点通过这个登录页面。有什么想法为什么在用户未登录时它不阻止对其他页面的请求?

这是我的 web.xml 中的相关片段: