问题标签 [principal]

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 投票
1 回答
289 浏览

java - 如何在 Tomcat 中保留主体信息(即 setPrincipal?)

我正在尝试构建第二种用户登录方式以及tomcat领域功能。这意味着未经身份验证的用户可以:
1. 通过调用领域
登录 2. 提供有效令牌并自动登录

我正在尝试实现 2。所以我使用过滤器将请求重定向到包装器中。在该包装器中,我覆盖了,getUserPrincipal以便可以创建该用户的主体。然后容器将识别主体并让用户进入而不重定向到登录页面。

但是现在的问题是:似乎并非所有请求都会获得正确的主体。关于 servlet 的请求以及 servlet 是否Dispatcher用于转发请求将获得主体集。使用简单链接或 servletsendRedirect不会调用该getUserPrincipal方法,因此即使用户使用方法 2 登录也会出现登录页面。

这就像为该用户创建的主体是“临时的”。我想知道是否有办法将主体存储在会话中或某处,以便容器知道用户已通过身份验证。

0 投票
3 回答
7939 浏览

spring-security - Spring Security - bean类[org.springframework.security.authentication.UsernamePasswordAuthenticationToken]的无效属性'principal'

我必须为一个项目实现一个自定义的“身份验证提供程序”,但是当我尝试在 JSP 中访问身份验证的对象属性时遇到了麻烦。详细信息:我的自定义身份验证提供程序成功创建了一个身份验证对象

(这里只有相关代码)

然后,在控制器方法中,我只显示带有用户名的日志消息(这证明 Authentication 对象已创建并放置在安全上下文中):

然后在 JSP 页面中,我想使用显示用户名

但是,这会引发错误 500:

我也注意到

不起作用,尽管用户在 Authentication 对象中添加了必要的角色。

有什么我做错了吗?身份验证工作正常,我只是无法访问身份验证对象的属性。

非常感谢,祝您有美好的一天。

0 投票
1 回答
3063 浏览

sql - 为什么在“dbo”上进行登录映射

在数据库设计中,'fed' 的用户与登录 'fed' 相比。

在此处输入图像描述

为什么在 Design 数据库中登录“fed”下的请求选择“dbo”

在此处输入图像描述

0 投票
1 回答
1317 浏览

c# - 在测试中为 WPF 应用程序设置 CurrentPrincipal

我们有一个 WPF 应用程序,它使用 CurrentPrincipal 来处理安全性。这一切都很好。

现在,在测试项目中,我们调用视图模型操作。问题是,在测试的初始化中,我们创建了一个新的应用程序实例,但我们不知道如何在这个应用程序上设置 CurrentPrincipal:

任何人都知道如何从应用程序外部为 WPF 应用程序设置 CurrentPrincipal?

0 投票
1 回答
15797 浏览

sql-server - 如何理解 SQL Server 中的主体?

这听起来很愚蠢,但我发现它真的很混乱:在 MSDN 中,定义是可以请求 SQL Server 资源的实体。基本上有三种类型的主体:Windows 级主体、SQL Server 级主体和数据库级主体。到目前为止还好。只是它给我的印象是一个主体的标识符应该与其他主体的标识符不同,无论这个原理是什么类型。(如果这三种类型的所有主体都可以排列在一个表中,它们将具有唯一的标识符)

令人困惑的部分来自以下这三个查询:

1)

(注意:我在一个数据库上运行它)

2)

现在我知道第一个返回数据库用户主体,而第二个返回服务器用户主体(如果我错了,请纠正我)。但是为什么第一个查询中的一行可以与第二个查询具有相同的 principal_id 呢?例如,数据库主体中的一行将是:

名称:INFORMATION_SCHEMA,principal_id:3

而第二个查询的一行是

名称:系统管理员,principal_id:3

这两个 principal_id 是什么?正如我所提到的,我认为两个主体的标识符会不同,即使一个是 DB 用户而另一个是服务器用户(从名称中我假设 principal_id 是标识符)。

好吧,如果 principal_id 对于所有主体来说不是唯一的,而只是在每个查询的范围内是唯一的(第一个查询中的 principal_id 只是数据库用户的标识符,所以它可能与服务器用户的标识符相同),我然后有第三个查询,但不明白这是什么意思:

3)

如果两个 principal_id 仅在它们的范围内是唯一的,那么在两个 principal_id 上进行内部连接意味着什么?内连接意味着这个列是共同唯一的,对吧?

一定有一些非常基本的东西我误解了。感谢您提供任何帮助!

0 投票
1 回答
7768 浏览

spring - 登录成功后getPrincipal()返回null

我在我的 spring 安全配置中使用了多个 http 元素[具有不同的模式]。每个都指向一个单独的身份验证管理器。我能够成功登录所有 http 元素。但是,登录成功后,返回的 Principal 对象为空。请帮我。

spring security的内容如下

web.xml如下

控制器代码

0 投票
1 回答
1296 浏览

jsf - 是否可以在 JSF+EJB 中以编程方式设置 Principal

我想使用 EJBContext.getCallerPrincipal() 检索用户名

但是我没有任何安全领域,我没有定义任何 <security-role> 或 <group-name> 因为用户名/密码被发送到远程应用程序进行验证。但为了方便起见,我仍然想使用 Principal 类来获取用户名和角色。

有没有办法在 JSF 托管 bean 或任何 EJB 中以编程方式设置 Principal(用户名和角色),以便拦截器可以检索它?例如:

0 投票
2 回答
30413 浏览

c# - 如何使用 System.DirectoryServices.AccountManagement 命名空间获取 Active Directory 用户属性?

我想从用户那里获取 Active Directory 属性,并且我想使用System.DirectoryServices.AccountManagement.

我的代码:

0 投票
1 回答
1992 浏览

c# - 尝试创建 PrincipalContext 时代码崩溃

每当我调用此方法时,我都会崩溃。

内部异常说

{“试图读取或写入受保护的内存。这通常表明其他内存已损坏。”}

StackTrace 是


我对这个方法的调用导致了崩溃

如果我删除/注释代码,它会编译并运行良好。


更新:听从 DJ KRAZE 的建议后

将 PrincipalContext 更改为接受 2 个参数后,新的 StackTrace 为

0 投票
1 回答
1797 浏览

c# - 如何避免 groupPrincipal.Members.Add 抛出 NoMatchingPrincipalException

我得到了一个 Active Directory 域,在其中我在某个新创建的 OU 下创建组对象,如下所示,例如 SubOuB 下的组。GlobalGroups 下的全局组已经存在。

现在我想将新创建的 OU 下新添加的组作为成员添加到全局组之一,例如将 GroupA_A 作为成员添加到 GlobalGroupB:

当我查看 AD 结构和对象时,我可以看到这两个对象。ADSI 编辑器显示两个“名称”都是正确的。当我在创建新的 OU 和组对象后在测试应用程序中手动运行代码时,将组作为成员添加到全局组中也可以正常工作。我使用的所有代码都在具有相同结构的 AD 的暂存环境中工作,所以我不确定为什么它在生产环境中确实存在问题。

有任何想法吗?我已经看到DirectoryEntry对象具有RefreshCache强制重新加载特定对象的属性值的方法,但我认为这在这里没有帮助。我的问题是时间问题吗?我可以强制“重新加载”现有对象,以便找到新创建的组并将其添加到全局组中吗?

更新

这显然是 AD 同步的问题 - 当我不断检查新创建的组对象是否存在(例如,带有 Thread.Sleep(1000) 的循环)时,我的代码按预期工作。缺点是我不知道我必须等待多长时间(在我的环境中测试在 6 到 15 秒之间变化)而且我也认为这是一种非常肮脏的方法。不幸的是,我找不到有关如何“刷新”AD 对象或“刷新”缓存的任何信息。

更新 2

当我连接到特定的域控制器时,第一个查询很慢(3000+ 毫秒),后续查询更快,并且都需要大约相同的时间返回。我仍然不知道如何避免定期查询 AD,直到预期的对象确实可用(作为查询结果)。