模拟Spring Security上下文进行单元测试
今天,在为一种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上下文进行单元测试相关推荐
- spring security鉴权
1.SpringSecurity 鉴权 - [重点] RBAC 基于角色访问控制 Role-Based Access Control组成部分:RBAC模型里面,有3个基础组成部分,分别是:用户user ...
- Spring Security : 概念模型 SecurityContext 安全上下文
概述 介绍 Spring Security使用接口SecurityContext抽象建模"安全上下文"这一概念.这里安全上下文SecurityContext指的是当前执行线程使用的 ...
- Spring Security 参考手册(一)
Spring Security 参考手册 Ben AlexLuke TaylorRob WinchGunnar Hillert Spring security 是一个强大的和高度可定制的身份验证和访问 ...
- Spring Security 5.0.x 参考手册 【翻译自官方GIT-2018.06.12】
源码请移步至: https://github.com/aquariuspj/spring-security/tree/translator/docs/manual/src/docs/asciidoc ...
- Spring Security 案例实现和执行流程剖析
在线演示 演示地址:http://139.196.87.48:9002/kitty 用户名:admin 密码:admin Spring Security Spring Security 是 Sprin ...
- java hipster!_通过Java Hipster升级Spring Security OAuth和JUnit测试
java hipster! "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权 ...
- 通过Java Hipster升级Spring Security OAuth和JUnit测试
"我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. 使用单元 ...
- 如何在没有Springockito的情况下模拟Spring bean
我在Spring工作了几年. 但是我总是对XML配置变得多么混乱感到沮丧. 随着各种注释和Java配置可能性的出现,我开始喜欢使用Spring进行编程. 这就是为什么我强烈使用Java配置的原因. 我 ...
- Spring MVC控制器的单元测试:REST API
Spring MVC提供了一种创建REST API的简便方法. 但是,为这些API编写全面而快速的单元测试一直很麻烦. Spring MVC测试框架的发布使我们可以编写可读,全面且快速的单元测试. 这 ...
最新文章
- centos php ioncube_Linux/Centos 安装PHP ioncube扩展
- 单片机原理,单片机能做什么?
- Android Fragment使用(三) Activity, Fragment, WebView的状态保存和恢复
- 几个网页制作的小技巧
- java设计模式之设计原则⑥里氏代换原则
- SAP FSM 学习笔记(三) 在微信里发起SAP FSM客户预约
- linux服务器时间不同步解决方法
- linux 查看hdfs文件,Hadoop之HDFS文件操作
- 企业数据云公司Cloudera发布CDP私有云,完善整套企业数据云愿景
- C++_类和对象_封装_访问权限_C++中struct和class的区别---C++语言工作笔记037
- document.write vs document.getElementById
- 神威计算机主板型号,十代酷睿高端型Z490主板曝光 总线规格依旧是PCIe 3.0且USB接口并不支持USB 3.2...
- 会看源码,你将比98.3%的人更容易拿到百度、阿里、腾讯、字节跳动等大公司的高薪Offer!请看这几个公众号!...
- 怎样控制小程序tabbar图标大小_微信小程序设计规范经验分享
- 怎样控制小程序tabbar图标大小_微信小程序tabBar的基本设置-微信小程序tabbar字体大小-微信小程序tabbar高度...
- 发现京东客服的一个死循环bug
- 台式计算机无线上网设置,台式机如何设置无线上网
- 罗兰贝格 | 适者生存:VUCA的世界
- 第七讲项目3-编制三角函数表
- 什么错误是计算机检查不出来的,如何在Windows 10中修复计算机检查异常BSOD | MOS86...
热门文章
- 漫画:什么是二叉堆?(修正版)
- 这些面试中的智力题,你都会了吗
- Java 常见的 30 个误区与细节
- 《白鹿原》金句摘抄(七)
- Servlet使用适配器模式进行增删改查案例(EmpServiceImpl.java)
- SpringCloud Netflix Eureka
- 当字段过长,鼠标移上去才展示全部,默认只展示部分防止表格比例发生变化
- 通过网页查看服务器算法,java分析html算法(java网页蜘蛛算法示例)
- mysql unique count_MySQL - Count Number of Unique Values
- latex 数学公式_技能分享——LaTeX篇I