我已按照以下链接尝试测试OAuth2 @PreAuthorise(hasAnyRole('ADMIN','TEST'),但我无法通过任何测试或甚至验证.
当我尝试使用admin(或任何角色)访问终点时,它将永远不会正确进行身份验证.我错过了一些明显的东西,似乎我拥有的东西就像在例子中一样.我还尝试了具有OAuth特定身份验证的WithSecurityContext Factory的另一种替代方案,但仍然没有运气.任何帮助,将不胜感激.
/sf/answers/2217575461/ 和 http://docs.spring.io/spring-security/site/docs/4.0.x/reference/htmlsingle/#test
我的控制器我正在测试
@RestController
@RequestMapping("/bookmark/")
public class GroupBookmarkController {
@Autowired
BookmarkService bookmarkService;
/**
* Get list of all bookmarks
*/
@RequestMapping(value = "{groupId}", method = RequestMethod.GET)
@PreAuthorize("hasAnyRole(['ADMIN', 'USER'])")
public ResponseEntity<List<Bookmark>> listAllGroupBookmarks(@PathVariable("groupId") String groupId) throws BookmarkNotFoundException {
List<Bookmark> bookmarks = bookmarkService.findAllBookmarksByGroupId(groupId);
return new ResponseEntity<>(bookmarks, HttpStatus.OK);
}
...
}
Run Code Online (Sandbox Code Playgroud)
我的测试课
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = BookmarkServiceApplication.class)
@WebAppConfiguration
public class BookmarkServiceApplicationTests {
private MockMvc mockMvc;
@Autowired
private WebApplicationContext webApplicationContext;
@Before
public void loadData() {
this.mockMvc = MockMvcBuilders
.webAppContextSetup(webApplicationContext)
.apply(springSecurity())
.alwaysDo(print()) …Run Code Online (Sandbox Code Playgroud) spring-security spring-test spring-boot spring-security-oauth2 spring-oauth2