今天,在为一种Java方法编写单元测试用例时,如下所示:

public ApplicationUser getApplicationUser() {ApplicationUser applicationUser = (ApplicationUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();return applicationUser;
}

我想模拟Spring Security Context以获取Principal,以实现与我模拟方法的每个级别相同的目标,如下所示:

import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import static org.mockito.Mockito.when;
import static org.mockito.Mockito.mock;
import org.mockito.MockitoAnnotations;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;
import com.arpit.security.user.ApplicationUser;public class BaseTest {@Beforepublic void setupMock() {MockitoAnnotations.initMocks(this);}@Testpublic void mockApplicationUser() {ApplicationUser applicationUser = mock(ApplicationUser.class);Authentication authentication = mock(Authentication.class);SecurityContext securityContext = mock(SecurityContext.class);when(securityContext.getAuthentication()).thenReturn(authentication);SecurityContextHolder.setContext(securityContext);when(SecurityContextHolder.getContext().getAuthentication().getPrincipal()).thenReturn(applicationUser);}}

翻译自: https://www.javacodegeeks.com/2017/05/mocking-spring-security-context-unit-testing.html

模拟Spring Security上下文进行单元测试相关推荐

  1. spring security鉴权

    1.SpringSecurity 鉴权 - [重点] RBAC 基于角色访问控制 Role-Based Access Control组成部分:RBAC模型里面,有3个基础组成部分,分别是:用户user ...

  2. Spring Security : 概念模型 SecurityContext 安全上下文

    概述 介绍 Spring Security使用接口SecurityContext抽象建模"安全上下文"这一概念.这里安全上下文SecurityContext指的是当前执行线程使用的 ...

  3. Spring Security 参考手册(一)

    Spring Security 参考手册 Ben AlexLuke TaylorRob WinchGunnar Hillert Spring security 是一个强大的和高度可定制的身份验证和访问 ...

  4. Spring Security 5.0.x 参考手册 【翻译自官方GIT-2018.06.12】

    源码请移步至: https://github.com/aquariuspj/spring-security/tree/translator/docs/manual/src/docs/asciidoc ...

  5. Spring Security 案例实现和执行流程剖析

    在线演示 演示地址:http://139.196.87.48:9002/kitty 用户名:admin 密码:admin Spring Security Spring Security 是 Sprin ...

  6. java hipster!_通过Java Hipster升级Spring Security OAuth和JUnit测试

    java hipster! "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权 ...

  7. 通过Java Hipster升级Spring Security OAuth和JUnit测试

    "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. 使用单元 ...

  8. 如何在没有Springockito的情况下模拟Spring bean

    我在Spring工作了几年. 但是我总是对XML配置变得多么混乱感到沮丧. 随着各种注释和Java配置可能性的出现,我开始喜欢使用Spring进行编程. 这就是为什么我强烈使用Java配置的原因. 我 ...

  9. Spring MVC控制器的单元测试:REST API

    Spring MVC提供了一种创建REST API的简便方法. 但是,为这些API编写全面而快速的单元测试一直很麻烦. Spring MVC测试框架的发布使我们可以编写可读,全面且快速的单元测试. 这 ...

最新文章

  1. centos php ioncube_Linux/Centos 安装PHP ioncube扩展
  2. 单片机原理,单片机能做什么?
  3. Android Fragment使用(三) Activity, Fragment, WebView的状态保存和恢复
  4. 几个网页制作的小技巧
  5. java设计模式之设计原则⑥里氏代换原则
  6. SAP FSM 学习笔记(三) 在微信里发起SAP FSM客户预约
  7. linux服务器时间不同步解决方法
  8. linux 查看hdfs文件,Hadoop之HDFS文件操作
  9. 企业数据云公司Cloudera发布CDP私有云,完善整套企业数据云愿景
  10. C++_类和对象_封装_访问权限_C++中struct和class的区别---C++语言工作笔记037
  11. document.write vs document.getElementById
  12. 神威计算机主板型号,十代酷睿高端型Z490主板曝光 总线规格依旧是PCIe 3.0且USB接口并不支持USB 3.2...
  13. 会看源码,你将比98.3%的人更容易拿到百度、阿里、腾讯、字节跳动等大公司的高薪Offer!请看这几个公众号!...
  14. 怎样控制小程序tabbar图标大小_微信小程序设计规范经验分享
  15. 怎样控制小程序tabbar图标大小_微信小程序tabBar的基本设置-微信小程序tabbar字体大小-微信小程序tabbar高度...
  16. 发现京东客服的一个死循环bug
  17. 台式计算机无线上网设置,台式机如何设置无线上网
  18. 罗兰贝格 | 适者生存:VUCA的世界
  19. 第七讲项目3-编制三角函数表
  20. 什么错误是计算机检查不出来的,如何在Windows 10中修复计算机检查异常BSOD | MOS86...

热门文章

  1. 漫画:什么是二叉堆?(修正版)
  2. 这些面试中的智力题,你都会了吗
  3. Java 常见的 30 个误区与细节
  4. 《白鹿原》金句摘抄(七)
  5. Servlet使用适配器模式进行增删改查案例(EmpServiceImpl.java)
  6. SpringCloud Netflix Eureka
  7. 当字段过长,鼠标移上去才展示全部,默认只展示部分防止表格比例发生变化
  8. 通过网页查看服务器算法,java分析html算法(java网页蜘蛛算法示例)
  9. mysql unique count_MySQL - Count Number of Unique Values
  10. latex 数学公式_技能分享——LaTeX篇I