问题标签 [security-context]

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

java - Spring Security:SecurityContextHolder.getContext().getAuthentication() 在用户注册用户并重定向到登录页面后返回 null

用户注册成功后,我试图将用户重定向到登录页面后并尝试从 SecurityContextHolder.getContext().getAuthentication(); 这是返回null。

这是用户成功注册后我设置上下文的方式

然后我使用 response.sendRedirect(url); 将用户重定向到 x 页面;

在控制器方法中,我试图将当前用户作为

我在控制台中看到文本为“这是空的”。

如何在整个用户期间从 SecurityContext() 中保留当前用户/主体,直到用户注销。

0 投票
1 回答
294 浏览

forms - 避免在 Symfony 表单中使用 security.context

对于每篇文章,都会显示评论列表。我希望用户能够编辑他们自己的评论(并且只有他们自己的评论)。我想知道使用方法 2 是否可以,或者是否存在安全漏洞?

方法一

到目前为止,我使用表单中的 security.context 来检查当前评论作者是否是 current_user。如果是,那么我可以在我的表单中添加一个带有 comment.text 的文本区域,以便用户可以编辑其评论。(但我的表单因此必须定义为服务,以便我可以注入 security.context)

在我的表单中(定义为服务,以便我可以注入 security.context)

方法_2

我尝试了一些不同的东西,它似乎工作正常(此外,我不必将我的表单定义为服务,因为我没有在我的表单中使用 security.context。)

我为我的实体评论创建了一个 EditAutorisation 属性。从控制器,我检查 current_user 是否是评论的作者。如果是,我将 EditAutorisation 设置为 true。

然后在我的表单中,我只需检索 EditAutorisation 的值

PS:在这两种情况下,我都在表单中使用 EventListener PRE_SET_DATA 来访问对象 $comment

我不太喜欢methode2,因为我不必将它定义为服务。但是因为我可以在控制器中进行测试,并在 PHP 中的 FORM 中轻松使用测试结果(使用 eventListener 获取 $comment->getEditAutorisation())和 TWIG(使用 {{ comment.EditAutorisation }})

0 投票
1 回答
4048 浏览

jakarta-ee - Wildfly、JAAS 和 SecurityContext

仍然在使用BASIC auth-method. 当我的自定义登录模块工作时,我遇到了一些关于授权的问题。我使用带有注释的 RESTeasy RESTFul Web 服务进行测试,代码如下:

我的登录模块被正确调用并生成了一个包含一个Groupnamed的主题,但是当我尝试访问时,我总是得到一个错误。我使用方法检查但总是返回。我想念如何和工作,怎么知道一个主题?更重要的是:我想了解更多信息,将不胜感激链接到资源和文档。RolesPrincipaluserA.../service/userA403testsubjectctx.getUserPrincipal()nullLoginModuleSecurityContextSecurityContext

更新:在我web.xml使用 RESTEasy 安全性:

我是否用 RESTEasy 安全性搞乱了 EJB 安全性?

0 投票
1 回答
3371 浏览

jax-rs - 获取当前用户的所有角色

一旦我有一个委托人登录,我怎样才能获得一个用户的所有角色?

我正在创建一个 Java EE 6 应用程序,并且正在编写一个 JAX-RS 服务来返回当前用户的所有角色,这些角色将由前端使用以正确呈现屏幕。

我知道有多个界面可以返回用户是否是某个角色的成员,但我想要的是一个允许我获取该特定用户的所有角色的界面

0 投票
0 回答
709 浏览

java - Jersey SecurityContext 有什么好处,以及如何使用它?

我有这样的 API

一个参数是 Jersey SecurityContext。我的问题是,我能用这个安全上下文做什么?对这个 api 的请求是什么样的?

我已阅读此https://jersey.java.net/documentation/latest/security.html但我根本没有完全了解 SecurityContext。

Wished Behavior 将发送两个信息作为字符串,如用户和键(如果可能)。

0 投票
1 回答
246 浏览

java - 异步 Spring 侦听器中的 SecurityUser

我面临一个问题,希望有人能给我一些建议。我有一个允许 HTTP 请求的宁静 Spring 应用程序。我正在使用 spring security 并提供 oauth2。在由控制器调用的基本服务中,我通过以下方式获取当前登录的用户:

到目前为止,一切正常。此外,我正在使用实现 org.springframework.context.ApplicationListener 接口的事件和事件侦听器。我将应用程序事件多播器配置为异步处理事件的方式(使用 SimpleAsyncTaskExecutor)。

当我尝试在我的侦听器中使用我的服务(以及依赖于当前登录用户的方法)时,就会出现(明显的)问题。他们无法访问上下文,因为他们正在异步工作。因此,我无法获取当前用户。

你能给出任何建议如何解决这个问题吗?是否有更多的选择

  • 以某种方式保存和扩展上下文,以便异步侦听器仍然可以访问它?如果是这样,该怎么做?
  • 更改所有服务方法以通过参数移交用户(而不是服务获取当前用户本身)并将其 id 存储在事件中。

非常感谢。我

0 投票
0 回答
2535 浏览

java - Jetty:使用安全领域进行身份验证 - HTTP ERROR 401 Unauthorized

我正在尝试创建一个简单的 Web 应用程序,其中包含球衣、嵌入式码头和具有 BASIC 身份验证的 SecurityContext,reaml 从/tmp/realm.properties 上的属性文件中获取用户数据。似乎由于任何原因没有读取属性文件,我在 Linux 内核上使用了审计规则,发现属性文件没有被任何进程访问。我已经阅读了很多教程和官方文档(https://wiki.eclipse.org/Jetty/Tutorial/Realms),但似乎有些东西不起作用。

/test/free > 没有安全上下文(我可以通过休息电话到达)

/test/test > 带有安全上下文(我得到 HTTP ERROR 401 Unauthorized)

卷曲http://127.0.0.1:8080/test/test -u foo:bar

这是我的代码:

资源:

web.xml

jetty-web.xml

领域属性

提前致谢

0 投票
0 回答
193 浏览

java - 如何获取非当前用户的 SecurityContext?

我找不到答案。我知道我可以为当前登录的用户获取 SecurityContext

但我想获得没有当前记录的上下文。不确定我可以为这个问题提供哪些更多信息:我可以访问他之前设置的身份验证和主体。我可能可以获得更多我需要的信息。

0 投票
2 回答
796 浏览

symfony - 在 Symfony2 中,我如何获得用户角色的完整列表

我想将经过身份验证的用户角色列表传递给我的前端应用程序,这样我就可以在前端和后端使用相同的访问控制结构。

我正在查看安全/身份验证类,因为这是 isGranted 函数让我执行此操作的地方

我找不到任何东西来获取角色列表,这不是受支持的功能吗?

注意:我不想要整个角色层次结构,只想要经过身份验证的用户的角色列表

0 投票
1 回答
195 浏览

windows - InitializeSecurityContext (Schannel) 不改变 BufferType

所以我有以下代码:

问题是,在Windows 8.1Windows 10平台上执行此代码后,input_buffers[1].BufferType设置为4。如果它在Windows Server 2012 R2上执行,则input_buffers[1].BufferType保持0 (SECBUFFER_MISSING)并且我最终会出错。有谁知道为什么InitializeSecurityContext (Schannel) 函数没有改变input_buffers[1]Windows Server 上的类型?

我非常感谢您能提供的任何帮助。

两个平台上返回的编辑 1 状态相同 (-2146893032),只是在 Win 8.1/10 功能更改input_buffers[1].BufferType为 4。

编辑 2 在 Win 8.1/10 上,它进入此案例选项的 else 分支,在 Win Server 2012 R2 中,它进入 if 分支。在所有平台上,状态设置为 SEC_E_INCOMPLETE_MESSAGE (-2146893032)