问题标签 [jdbcrealm]

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 投票
0 回答
879 浏览

security - Cannot load group for JDBC realm user

My jdbcRealm has somehow gotten deleted by magic from GlassFish. Now when I try to add it back in, I get the following error.

Based on the other answers I've seen on here, the culprit is usually a reserved word being used as a column name but this doesn't seem to be the problem in my case (see screenshot below). We recently had some database model changes so I had to reconfigure the mappings for roles to groups in web.xml and glassfish-web.xml. There are five roles and they are a 1:1 mapping between users.

enter image description here

0 投票
1 回答
8542 浏览

glassfish - Glassfish 认为 jdbcRealm 实际上是 fileRealm

我在 Glassfish 3.1.1 中配置了一个新的 jdbcRealm 并打开了 FINEST 日志记录,当我尝试使用用户名和密码登录时得到以下信息。它抱怨我的 Web 应用程序映射到的领域是一个 fileRealm,而它确实是一个 jdbcRealm。关于为什么 Glassfish 认为它是一个 fileRealm 的任何想法?

我的领域配置: 在此处输入图像描述

网页.xml:

0 投票
1 回答
4404 浏览

spring-roo - 使用 Apache Shiro 为 Spring Roo 项目设置 JDBC 领域

我使用 Eclipse 链接为我的 JPA 持久层设置了一个 Spring-Roo 项目,并且我创建了(用户角色、用户)表来管理我的安全性。我想知道是否有人用 Spring 项目设置了一个领域来配置 Apache Shiro,以便它使用数据库表来查找用户名和密码并保存用户名和密码?

目前我有一个 Shiro.ini 文件与一些测试角色和(用户名、密码)组合一起使用,但我试图弄清楚如何使用正确的过滤器来配置我的 web.xml 文件。下面是我的 web.xml 文件和当前的过滤器集。

有没有人有一个使用(Postgres)和 Apache Shiro 和 Spring 的 JDBC 领域的例子?

0 投票
0 回答
936 浏览

ssl - Tomcat 7 容器管理的安全性和 SSL 不能一起工作 + jsf 2.1

我将 JDBCRealm 用于 Tomcat 7 用户身份验证,将 SSL 用于 https,但我不知道如何组合它们。我的目标是通过 SSL 使所有页面安全,并且只能由特定角色查看。我正在使用 JSF 2.1。这是我在 web.xml 中的代码

他们似乎分开工作,但我需要的是一种组合方式。现在 Tomcat 不会重定向到端口 8443 (https),​​您只需在浏览器中键入即可访问任何页面。我将此页面用于 SSL http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html,并将此页面用于 JDBCRealm http://tomcat.apache.org/tomcat-7.0-doc/realm- howto.html。我希望我的程序只允许某些角色访问某些页面,同时在 HTTPS 上执行所有操作。请帮我解决这个问题。我不知道我在哪里犯了错误。我没有收到任何错误。

解决

问题比我想象的要深。Tomcat 7 不支持自定义表单用户身份验证,因此上述安全角色不起作用。为了解决这个问题,我必须创建一个过滤器类来保护未经授权的页面访问。

如果有人有同样的问题,我会离开这个话题(如果管理员发现这个话题不相关,请随意删除它)

0 投票
1 回答
875 浏览

java - 在 Glassfish 3.0 安全领域中使用 bcrypt

我目前正在将 Web 应用程序中的密码处理从 unsalted MD5 更改为 bcrypt。这是一个标准的 JSF 应用程序,在 Glassfish 3.0.1 上运行。
使用 jBCrypt 可以很容易地创建和存储哈希值。但是现在我不知道如何在用户登录时在实际身份验证中使用 bcrypt。由于它是 JSF,因此使用 HttpServletRequest#login 方法触发登录,其余的由 Java EE 堆栈和 Glassfish 处理。

简单地将安全领域摘要算法设置为“无”,然后在将密码传递给登录方法之前对其进行哈希处理是行不通的,因为我没有在创建哈希时最初使用的生成的盐 jBCrypt。我也考虑过提供自定义安全领域的实现,但对于这么小的变化来说,这似乎有很多工作。

有没有更简单的解决方案?还是有人已经实施了类似的安全领域?

0 投票
0 回答
634 浏览

hibernate - 带有 JPA 注释的 Glassfish JDBC 安全领域

我有一个在 Glassfish 3.1.1 下运行的相当简单的 servlet 应用程序,并带有一个 Derby 10.5.3.0 数据库。我已经使用 JPA 注释创建了一个安全领域,并且能够成功登录。当我尝试访问用户实体时,我的问题就来了。JPA/Hibernate 似乎在反复读取用户表,直到它抛出 StackOverflowError 异常。我已经尝试注释掉登录代码,但是在尝试访问用户表时仍然会出现异常,所以我很确定问题一定出在我的 JPA 注释上。有人可以帮忙吗?

用户.java:

角色.java:

}

我的用户查找器代码(锁定模式是优化的):

0 投票
1 回答
2172 浏览

tomcat - 如何为 Tomcat JDBCRealm 准备摘要密码?

在此处的示例http://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html#JDBCRealm列的类型user_passvarchar(15),而java.security.MessageDigest类接受并返回byte[]。哪种转换应该应用于密码'abcd'(例如)以将其转换为 Tomcat 所期望的 MD5 摘要?

PS。

我尝试了以下方法并且它有效(与 digest.bat 结果一致)。现在唯一的问题是长度:摘要长度超过 15 个字符。我可以换桌子吗?

0 投票
1 回答
6878 浏览

tomcat - 在 context.xml 中配置 jdbcRealm

现在所有数据库连接都工作正常,但是在我添加领域后抛出错误后,我已经在库中添加了 sqljdbc4.jar。

可能是什么问题?

0 投票
2 回答
3095 浏览

java - 如何获取/设置 JdbcRealm 的盐

我正在尝试使用 Shiro JdbcRealm 和 SHA256 hashedcredentialsMatcher。我需要更新旧数据库并为每个用户分配适当的盐(通过批处理例程)。

如何使用 Shiro 框架获取/设置给定帐户的盐?

0 投票
2 回答
2897 浏览

mysql - 带有 glassfish v3 的 jdbc 领域:领域属性和配置错误

我有以下数据库架构(MySQL):

在此处输入图像描述

我的登录是一个基于表单的身份验证系统,我正在尝试创建一个jdbc 领域。


在此处输入图像描述

我的 web.xml:

sun-web.xml 中的映射:

我不知道为什么,但它对我不起作用,我得到以下信息:

我是否根据我拥有的数据库模式放置“准确”属性?感谢您的帮助,因为我不明白我做错了什么。

更新

这适用于任何有相同情况的人。

基于 @perissf ,GlassFish JDBC Realm 不支持规范化表。检查@perissf 的链接以获取有关架构应该如何的教程。
但是,我所做的是: 我保留了规范化模式并创建了一个 MySQL“视图”,其中包含所有必需的列:即列 [用户名、密码、组名]

-->我修改了Jdbc属性如下: 在此处输入图像描述

使用“视图”的原因是,正如@Matt Handy 所说,“JdbcRealm 要求用户表和组表中的用户名列名需要相同” 所以这在我的情况下会创建重复数据,因此我用了一个视图。