org.springframework.security.core.Authentication.getPrincipal()方法的使用及代码示例

x33g5p2x  于2022-01-15 转载在 其他  
字(13.3k)|赞(0)|评价(0)|浏览(250)

本文整理了Java中org.springframework.security.core.Authentication.getPrincipal()方法的一些代码示例,展示了Authentication.getPrincipal()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Authentication.getPrincipal()方法的具体详情如下:
包路径:org.springframework.security.core.Authentication
类名称:Authentication
方法名:getPrincipal

Authentication.getPrincipal介绍

[英]The identity of the principal being authenticated. In the case of an authentication request with username and password, this would be the username. Callers are expected to populate the principal for an authentication request.

The AuthenticationManager implementation will often return an Authentication containing richer information as the principal for use by the application. Many of the authentication providers will create a UserDetails object as the principal.
[中]正在进行身份验证的主体的标识。对于使用用户名和密码的身份验证请求,这将是用户名。调用者需要填充身份验证请求的主体。
AuthenticationManager实现通常会返回一个包含更丰富信息的身份验证作为主体,供应用程序使用。许多身份验证提供程序将创建一个UserDetails对象作为主体。

代码示例

代码示例来源:origin: ctripcorp/apollo

private String getCurrentUsername() {
 Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
 if (principal instanceof UserDetails) {
  return ((UserDetails) principal).getUsername();
 }
 if (principal instanceof Principal) {
  return ((Principal) principal).getName();
 }
 return String.valueOf(principal);
}

代码示例来源:origin: stackoverflow.com

public String getUsername() {
   SecurityContext context = SecurityContextHolder.getContext();
   Authentication authentication = context.getAuthentication();
   if (authentication == null)
     return null;
   Object principal = authentication.getPrincipal();
   if (principal instanceof UserDetails) {
     return ((UserDetails) principal).getUsername();
   } else {
     return principal.toString();
   }
 }
 public User getCurrentUser() {
   if (overridenCurrentUser != null) {
     return overridenCurrentUser;
   }
   User user = userRepository.findByUsername(getUsername());
   if (user == null)
     return user;
 }

代码示例来源:origin: geoserver/geoserver

auth.getPrincipal(), auth.getCredentials(), roles);
newResult.setDetails(auth.getDetails());
SecurityContextHolder.getContext().setAuthentication(newResult);

代码示例来源:origin: macrozheng/mall

@Override
public UmsMember getCurrentMember() {
  SecurityContext ctx = SecurityContextHolder.getContext();
  Authentication auth = ctx.getAuthentication();
  MemberDetails memberDetails = (MemberDetails) auth.getPrincipal();
  return memberDetails.getUmsMember();
}

代码示例来源:origin: spring-projects/spring-security

@Test
  public void securityContextDeserializeTest() throws IOException {
    SecurityContext context = mapper.readValue(SECURITY_CONTEXT_JSON, SecurityContextImpl.class);
    assertThat(context).isNotNull();
    assertThat(context.getAuthentication()).isNotNull().isInstanceOf(UsernamePasswordAuthenticationToken.class);
    assertThat(context.getAuthentication().getPrincipal()).isEqualTo("admin");
    assertThat(context.getAuthentication().getCredentials()).isEqualTo("1234");
    assertThat(context.getAuthentication().isAuthenticated()).isTrue();
    Collection authorities = context.getAuthentication().getAuthorities();
    assertThat(authorities).hasSize(1);
    assertThat(authorities).contains(new SimpleGrantedAuthority("ROLE_USER"));
  }
}

代码示例来源:origin: spring-projects/spring-security-oauth

request.setAttribute(OAuth2AuthenticationDetails.ACCESS_TOKEN_VALUE, authentication.getPrincipal());
if (authentication instanceof AbstractAuthenticationToken) {
  AbstractAuthenticationToken needsDetails = (AbstractAuthenticationToken) authentication;
SecurityContextHolder.getContext().setAuthentication(authResult);

代码示例来源:origin: kaaproject/kaa

/**
  * Get authenticated user from spring security holder.
  *
  * @return user data transfer object
  */
 public static AuthUserDto getCurrentUser() throws KaaAdminServiceException {
  Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
  if (authentication.getPrincipal() instanceof AuthUserDto) {
   return (AuthUserDto) authentication.getPrincipal();
  } else {
   throw new KaaAdminServiceException(
     "You are not authorized to perform this operation!",
     ServiceErrorCode.NOT_AUTHORIZED);
  }
 }
}

代码示例来源:origin: cloudfoundry/uaa

@Test
void testCreatingAnAccountWithNoClientRedirect() throws Exception {
  PredictableGenerator generator = new PredictableGenerator();
  JdbcExpiringCodeStore store = webApplicationContext.getBean(JdbcExpiringCodeStore.class);
  store.setGenerator(generator);
  mockMvc.perform(post("/create_account.do")
      .with(cookieCsrf())
      .param("email", userEmail)
      .param("password", "secr3T")
      .param("password_confirmation", "secr3T"))
      .andExpect(status().isFound())
      .andExpect(redirectedUrl("accounts/email_sent"));
  FakeJavaMailSender.MimeMessageWrapper message = fakeJavaMailSender.getSentMessages().get(0);
  assertTrue(message.getContentString().contains("Cloud Foundry"));
  assertThat(message.getMessage().getHeader("From"), hasItemInArray("Cloud Foundry <admin@localhost>"));
  mockMvc.perform(get("/verify_user")
      .param("code", "test" + generator.counter.get()))
      .andExpect(status().isFound())
      .andExpect(redirectedUrl(LOGIN_REDIRECT))
      .andReturn();
  MvcResult mvcResult = loginWithAccount("")
      .andExpect(authenticated())
      .andReturn();
  SecurityContext securityContext = (SecurityContext) mvcResult.getRequest().getSession().getAttribute(HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY);
  Authentication authentication = securityContext.getAuthentication();
  assertThat(authentication.getPrincipal(), instanceOf(UaaPrincipal.class));
  UaaPrincipal principal = (UaaPrincipal) authentication.getPrincipal();
  assertThat(principal.getEmail(), equalTo(userEmail));
  assertThat(principal.getOrigin(), equalTo(OriginKeys.UAA));
}

代码示例来源:origin: cloudfoundry/uaa

@Test
public void testNullCreatedById() throws Exception {
  Authentication authentication = mock(Authentication.class);
  when(authentication.getPrincipal()).thenReturn(null);
  SecurityContextHolder.getContext().setAuthentication(authentication);
  String client1 = "client1";
  String client2 = "client2";
  BaseClientDetails clientDetails = new BaseClientDetails();
  clientDetails.setClientId(client1);
  service.addClientDetails(clientDetails);
  assertNull(service.getCreatedByForClientAndZone(client1, OriginKeys.UAA));
  authenticateAsClient();
  clientDetails = new BaseClientDetails();
  clientDetails.setClientId(client2);
  service.addClientDetails(clientDetails);
  assertNull(service.getCreatedByForClientAndZone(client2, OriginKeys.UAA));
}

代码示例来源:origin: BroadleafCommerce/BroadleafCommerce

@RequestMapping(value="/changePassword", method=RequestMethod.GET)
public String changePassword(HttpServletRequest request, HttpServletResponse response, Model model) {
  SecurityContext c = SecurityContextHolder.getContext();
  model.addAttribute("username", ((AdminUserDetails) c.getAuthentication().getPrincipal()).getUsername());
  return "login/changePasswordPopup";
}

代码示例来源:origin: cloudfoundry/uaa

@Test
void testCreatingAnAccountWithAnEmptyClientId() throws Exception {
  PredictableGenerator generator = new PredictableGenerator();
  JdbcExpiringCodeStore store = webApplicationContext.getBean(JdbcExpiringCodeStore.class);
  store.setGenerator(generator);
  mockMvc.perform(post("/create_account.do")
      .with(cookieCsrf())
      .param("email", userEmail)
      .param("password", "secr3T")
      .param("password_confirmation", "secr3T")
      .param("client_id", ""))
      .andExpect(status().isFound())
      .andExpect(redirectedUrl("accounts/email_sent"));
  mockMvc.perform(get("/verify_user")
      .param("code", "test" + generator.counter.get()))
      .andExpect(status().isFound())
      .andExpect(redirectedUrl(LOGIN_REDIRECT))
      .andReturn();
  MvcResult mvcResult = loginWithAccount("")
      .andExpect(authenticated())
      .andReturn();
  SecurityContext securityContext = (SecurityContext) mvcResult.getRequest().getSession().getAttribute(HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY);
  Authentication authentication = securityContext.getAuthentication();
  assertThat(authentication.getPrincipal(), instanceOf(UaaPrincipal.class));
  UaaPrincipal principal = (UaaPrincipal) authentication.getPrincipal();
  assertThat(principal.getEmail(), equalTo(userEmail));
  assertThat(principal.getOrigin(), equalTo(OriginKeys.UAA));
}

代码示例来源:origin: zhangxd1989/springboot-dubbox

new UsernamePasswordAuthenticationToken(username, password)
);
SecurityContextHolder.getContext().setAuthentication(authentication);
final UserDetails userDetails = (UserDetails) authentication.getPrincipal();
final String token = jwtTokenUtil.generateToken(userDetails); //生成Token

代码示例来源:origin: cloudfoundry/uaa

@RequestMapping(value = "/change_email", method = RequestMethod.GET)
public String changeEmailPage(Model model, @RequestParam(value = "client_id", required = false) String clientId,
               @RequestParam(value = "redirect_uri", required = false) String redirectUri) {
  SecurityContext securityContext = SecurityContextHolder.getContext();
  model.addAttribute("email", ((UaaPrincipal)securityContext.getAuthentication().getPrincipal()).getEmail());
  model.addAttribute("client_id", clientId);
  model.addAttribute("redirect_uri", redirectUri);
  return "change_email";
}

代码示例来源:origin: cloudfoundry/uaa

@Test
void testCreatingAnAccount() throws Exception {
  PredictableGenerator generator = new PredictableGenerator();
  JdbcExpiringCodeStore store = webApplicationContext.getBean(JdbcExpiringCodeStore.class);
  store.setGenerator(generator);
  mockMvc.perform(post("/create_account.do")
      .with(cookieCsrf())
      .param("email", userEmail)
      .param("password", "secr3T")
      .param("password_confirmation", "secr3T"))
      .andExpect(status().isFound())
      .andExpect(redirectedUrl("accounts/email_sent"));
  JdbcScimUserProvisioning scimUserProvisioning = webApplicationContext.getBean(JdbcScimUserProvisioning.class);
  ScimUser scimUser = scimUserProvisioning.query("userName eq '" + userEmail + "' and origin eq '" + OriginKeys.UAA + "'", IdentityZoneHolder.get().getId()).get(0);
  assertFalse(scimUser.isVerified());
  mockMvc.perform(get("/verify_user")
      .param("code", "test" + generator.counter.get()))
      .andExpect(status().isFound())
      .andExpect(redirectedUrl(LOGIN_REDIRECT))
      .andReturn();
  MvcResult mvcResult = loginWithAccount("")
      .andExpect(authenticated())
      .andReturn();
  SecurityContext securityContext = (SecurityContext) mvcResult.getRequest().getSession().getAttribute(HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY);
  Authentication authentication = securityContext.getAuthentication();
  assertThat(authentication.getPrincipal(), instanceOf(UaaPrincipal.class));
  UaaPrincipal principal = (UaaPrincipal) authentication.getPrincipal();
  assertThat(principal.getEmail(), equalTo(userEmail));
  assertThat(principal.getOrigin(), equalTo(OriginKeys.UAA));
}

代码示例来源:origin: zhangxd1989/springboot-dubbox

/**
 * Create authentication token bearer auth token.
 *
 * @param sysUser the sys user
 * @return the bearer auth token
 */
@PostMapping(value = "/token")
public Map<String, Object> createAuthenticationToken(@RequestBody SysUser sysUser) {
  // Perform the security
  final Authentication authentication = authenticationManager.authenticate(
    new UsernamePasswordAuthenticationToken(sysUser.getLoginName(), sysUser.getPassword())
  );
  SecurityContextHolder.getContext().setAuthentication(authentication);
  final UserDetails userDetails = (UserDetails) authentication.getPrincipal();
  final String token = jwtTokenUtil.generateToken(userDetails);
  // Return the token
  Map<String, Object> tokenMap = new HashMap<>();
  tokenMap.put("access_token", token);
  tokenMap.put("expires_in", jwtTokenUtil.getExpiration());
  tokenMap.put("token_type", TokenUtil.TOKEN_TYPE_BEARER);
  return tokenMap;
}

代码示例来源:origin: cloudfoundry/uaa

@Override
public String getUserId() {
  Authentication a = SecurityContextHolder.getContext().getAuthentication();
  return a == null ? null : ((UaaPrincipal) a.getPrincipal()).getId();
}

代码示例来源:origin: cloudfoundry/uaa

Authentication authentication = securityContext.getAuthentication();
assertThat(authentication.getPrincipal(), instanceOf(UaaPrincipal.class));
UaaPrincipal principal = (UaaPrincipal) authentication.getPrincipal();
assertThat(principal.getEmail(), equalTo(userEmail));
assertThat(principal.getOrigin(), equalTo(OriginKeys.UAA));

代码示例来源:origin: cloudfoundry/uaa

protected boolean isUserLoggedIn() {
  Authentication auth = SecurityContextHolder.getContext().getAuthentication();
  return auth!=null && auth.isAuthenticated() && auth.getPrincipal() instanceof UaaPrincipal;
}

代码示例来源:origin: cloudfoundry/uaa

Authentication authentication = securityContext.getAuthentication();
assertThat(authentication.getPrincipal(), instanceOf(UaaPrincipal.class));
UaaPrincipal principal = (UaaPrincipal) authentication.getPrincipal();
assertThat(principal.getEmail(), equalTo(userEmail));
assertThat(principal.getOrigin(), equalTo(OriginKeys.UAA));

代码示例来源:origin: cloudfoundry/uaa

protected String getUserId() {
  String userId = null;
  Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
  //Bootstrap will not have authenticated session
  if(authentication == null) return null;
  if(authentication.getPrincipal() instanceof UaaPrincipal) {
    userId = ((UaaPrincipal) authentication.getPrincipal()).getId();
  } else if(authentication.getPrincipal() instanceof String) {
    ContextSensitiveOAuth2SecurityExpressionMethods contextSensitiveOAuth2SecurityExpressionMethods = new ContextSensitiveOAuth2SecurityExpressionMethods(authentication);
    userId = getCreatedByForClientAndZone((String)authentication.getPrincipal(), contextSensitiveOAuth2SecurityExpressionMethods.getAuthenticationZoneId());
  }
  return userId;
}

相关文章