当前位置: 首页 > news >正文

dede网站地图插件公司网站建设济南兴田德润厉害吗

dede网站地图插件,公司网站建设济南兴田德润厉害吗,wordpress企业官网,销售外包团队SecurityContext和SecurityContextHolder是Spring Security的两个基本类。 SecurityContext用于存储当前经过身份验证的用户的详细信息#xff0c;也称为原理。 因此#xff0c;如果必须获取用户名或任何其他用户详细信息#xff0c;则需要首先获取此SecurityContext 。 Sec… SecurityContext和SecurityContextHolder是Spring Security的两个基本类。 SecurityContext用于存储当前经过身份验证的用户的详细信息也称为原理。 因此如果必须获取用户名或任何其他用户详细信息则需要首先获取此SecurityContext 。 SecurityContextHolder是一个帮助程序类它提供对安全上下文的访问。 默认情况下它使用ThreadLocal对象存储安全性上下文这意味着即使不传递SecurityContext对象该安全性上下文也始终可用于同一执行线程中的方法。 不过不必担心Web应用程序中的ThreadLocal内存泄漏 Spring Security会负责清理ThreadLocal。 顺便说一句这不是SecurityContextHolder可以存储当前SecurityContext的唯一方法可以在启动时为其配置策略以指定如何存储上下文。 例如可以将SecurityContextHolder.MODE_GLOBAL策略用于独立的应用程序。 要学习的关键是 如何从SecurityContextHolder获得SecurityContext 然后从中检索当前的用户详细信息 例如如果您想知道当前登录用户的用户名那么如何在Spring security中获得该用户名 为了获取当前的用户名首先需要一个SecurityContext 它是从SecurityContextHolder获得的。 此SecurityContext将用户详细信息保留在Authentication对象中该对象可以通过调用getAuthentication()方法获得。 一旦获得身份验证对象就可以转换为UserDetails或按原样使用它。 UserDetails对象是Spring Security用于保留用户相关信息的对象。 如何在Spring Security中获取当前的登录用户名 这是获取Spring安全性中的安全性上下文并获取当前登录用户的名称的代码 Object principal SecurityContextHolder.getContext().getAuthentication().getPrincipal();if (principal instanceof UserDetails) {String username ((UserDetails)principal).getUsername(); } else {String username principal.toString(); } getContext()返回的对象是SecurityContext接口的实例。 这是存储在线程本地存储中的对象。 getPrincipal()方法通常在Spring Security中返回UserDetails对象该对象包含当前登录用户的所有详细信息。 无论如何如果您仔细观察您会发现在考虑Spring和依赖注入时这并不是一个很好的代码。 因此如果您需要了解当前登录的用户详细信息例如在Spring MVC控制器中建议您声明一个依赖项然后让Spring为您提供Principal对象而不是查询它们并创建一个紧密耦合的系统。 这是一个例子 import java.security.Principal; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody;Controller public class MVCController {RequestMapping(value /username, method RequestMethod.GET)ResponseBodypublic String currentUserName(Principal principal) {return principal.getName();}} 另外您也可以要求提供Authentication对象而不是Principal对象如下所示 import org.springframework.security.core.Authentication; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody;Controller public class SpringMVCController {RequestMapping(value /username, method RequestMethod.GET)ResponseBodypublic String currentUserName(Authentication authentication) {return authentication.getName();} } 如果您想了解更多方法还可以参阅我的文章有关在Spring Security中获取当前用户名的3种方法 在此我讨论了几种在Spring MVC控制器中获取当前用户名的更多方法。 这就是Spring安全性中的安全性上下文以及如何从SecurityContextHolder类获取SecurityContext的全部内容。 这些是一些基本类因此您必须熟悉它们。 存储部分即SecurityContext存储在ThreadLocal是可选的但最好了解详细信息。 请记住如果您需要用户详细信息例如用户名等则最好在Spring MVC控制器中请求Principal或Authentication对象而不要使用SecurityContextHolder来获取它们。 感谢您到目前为止阅读本文。 如果您喜欢此Spring Security教程请与您的朋友和同事分享。 如果您有任何疑问或反馈请留言。 翻译自: https://www.javacodegeeks.com/2018/02/securitycontext-securitycontextholder-spring-security.html
http://www.yutouwan.com/news/219931/

相关文章:

  • 2017网站建设前景快手怎么引流推广
  • 建立网站的软件帮企业外卖网站做推
  • 浙江省建设信息网站什么网站可以做miR的差异表达图
  • 失业保险网站虚拟主机搭建多个网站
  • 外管局网站怎么做报告安卓android官网下载
  • 网站备案关闭网站织梦网站分页问题
  • 做微信推送用什么网站在线购物网站建设流程
  • 郑州网站建设优化常州做网站那家快
  • 网站建设的分类百度推广有用吗
  • 防水网站建设如何更改 网站 关键词
  • 网站建设力度不够论文wordpress调节字体大小
  • 网站简繁体转换.rar盐城哪里帮助公司建网址
  • 公司网站手机版设计免费代刷网站推广
  • 松江网站开发四库一平台建造师业绩查询
  • 五路居网站建设网站改版的目的
  • 在线搜索引擎seo行业网
  • 杨凌规划建设局网站seo广州工作好吗
  • 网站建设的因素美食网站html代码
  • 做英文网站价格常用的app开发制作
  • 网站与数据库的联系网站管理设置
  • 网站代理访问是什么意思wordpress标签分类名称
  • 秦都区建设局网站如何制作网站app
  • 北京建设银行分行招聘网站网站备案最多需要多久
  • 外省公司做网站备案本地生活网站 源码
  • 公司网站建设价格评价校园网站建设范例
  • 国内精美网站界面网址网站打开速度慢 如何优化
  • 手机网站建设需求免费在线图片制作
  • 网站怎么做投票在哪些网站可以做企业名称预审
  • 网站要怎么样做排名才上得去wordpress主题优化
  • 免费营销网站制作企业网站建设技巧