Search in sources :

Example 11 with WormholeUserDetails

use of com.vmware.flowgate.util.WormholeUserDetails in project flowgate by vmware.

the class AuthController method updateUser.

// Update a user
@ResponseStatus(HttpStatus.OK)
@RequestMapping(value = "/user", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
public void updateUser(@RequestBody WormholeUser user, HttpServletRequest request) {
    WormholeUserDetails userDetail = accessTokenService.getCurrentUser(request);
    Optional<WormholeUser> currentUserOptional = userRepository.findById(userDetail.getUserId());
    WormholeUser currentUser = currentUserOptional.get();
    WormholeUser old = null;
    if (currentUser.getUserName().equals(user.getUserName())) {
        old = currentUser;
    } else if (currentUser.getRoleNames().contains(FlowgateConstant.Role_admin)) {
        Optional<WormholeUser> oldUserOptional = userRepository.findById(user.getId());
        old = oldUserOptional.get();
    } else {
        throw new WormholeRequestException(HttpStatus.FORBIDDEN, "Forbidden", null);
    }
    if (old == null) {
        throw new WormholeRequestException(HttpStatus.NOT_FOUND, "User not found", null);
    }
    if (user.getPassword() != null && !"".equals(user.getPassword().trim())) {
        BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
        old.setPassword(encoder.encode(user.getPassword()));
        old.setLastPasswordResetDate(new Date().getTime());
    }
    if (user.getEmailAddress() != null && !"".equals(user.getEmailAddress().trim())) {
        old.setEmailAddress(user.getEmailAddress());
    }
    if (user.getRoleNames() != null) {
        old.setRoleNames(user.getRoleNames());
    }
    userRepository.save(old);
}
Also used : WormholeRequestException(com.vmware.flowgate.exception.WormholeRequestException) WormholeUserDetails(com.vmware.flowgate.util.WormholeUserDetails) Optional(java.util.Optional) BCryptPasswordEncoder(org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder) Date(java.util.Date) WormholeUser(com.vmware.flowgate.common.model.WormholeUser) ResponseStatus(org.springframework.web.bind.annotation.ResponseStatus) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 12 with WormholeUserDetails

use of com.vmware.flowgate.util.WormholeUserDetails in project flowgate by vmware.

the class AuthController method readUserByName.

// Read a user by user name
@RequestMapping(value = "/user/username/{name}", method = RequestMethod.GET)
public WormholeUser readUserByName(@PathVariable(required = false) String name, HttpServletRequest request) {
    WormholeUserDetails userDetail = accessTokenService.getCurrentUser(request);
    Optional<WormholeUser> currentUserOptional = userRepository.findById(userDetail.getUserId());
    WormholeUser user = null;
    WormholeUser currentUser = currentUserOptional.get();
    if (currentUser.getRoleNames().contains(FlowgateConstant.Role_admin)) {
        user = userRepository.findOneByUserName(name);
    } else if (currentUser.getUserName().equals(name)) {
        user = currentUser;
    } else {
        throw new WormholeRequestException(HttpStatus.FORBIDDEN, "Forbidden", null);
    }
    if (user != null) {
        return DesensitizationUserData.desensitizationUser(user);
    }
    return user;
}
Also used : WormholeRequestException(com.vmware.flowgate.exception.WormholeRequestException) WormholeUserDetails(com.vmware.flowgate.util.WormholeUserDetails) WormholeUser(com.vmware.flowgate.common.model.WormholeUser) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 13 with WormholeUserDetails

use of com.vmware.flowgate.util.WormholeUserDetails in project flowgate by vmware.

the class FacilitySoftwareController method createServer.

// create a new facilitySoftwareConfig
@RequestMapping(method = RequestMethod.POST)
@ResponseStatus(HttpStatus.CREATED)
public void createServer(@RequestBody FacilitySoftwareConfig config, HttpServletRequest request) {
    HandleURL handleURL = new HandleURL();
    config.setServerURL(handleURL.formatURL(config.getServerURL()));
    if (repository.findOneByServerURL(config.getServerURL()) != null) {
        String message = String.format("The server %s is already exsit.", config.getServerURL());
        throw new WormholeRequestException(message);
    }
    serverValidationService.validateFacilityServer(config);
    IntegrationStatus integrationStatus = new IntegrationStatus();
    integrationStatus.setRetryCounter(FlowgateConstant.DEFAULTNUMBEROFRETRIES);
    integrationStatus.setStatus(IntegrationStatus.Status.ACTIVE);
    config.setIntegrationStatus(integrationStatus);
    WormholeUserDetails user = accessTokenService.getCurrentUser(request);
    config.setUserId(user.getUserId());
    encryptServerPassword(config);
    BaseDocumentUtil.generateID(config);
    repository.save(config);
    decryptServerPassword(config);
    notifyFacilityWorker(config);
}
Also used : WormholeRequestException(com.vmware.flowgate.exception.WormholeRequestException) HandleURL(com.vmware.flowgate.util.HandleURL) WormholeUserDetails(com.vmware.flowgate.util.WormholeUserDetails) IntegrationStatus(com.vmware.flowgate.common.model.IntegrationStatus) ResponseStatus(org.springframework.web.bind.annotation.ResponseStatus) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 14 with WormholeUserDetails

use of com.vmware.flowgate.util.WormholeUserDetails in project flowgate by vmware.

the class SDDCSoftwareController method queryServer.

@RequestMapping(value = "/page/{pageNumber}/pagesize/{pageSize}", method = RequestMethod.GET)
public Page<SDDCSoftwareConfig> queryServer(@PathVariable("pageNumber") int currentPage, @PathVariable("pageSize") int pageSize, HttpServletRequest request) {
    if (currentPage < FlowgateConstant.defaultPageNumber) {
        currentPage = FlowgateConstant.defaultPageNumber;
    } else if (pageSize <= 0) {
        pageSize = FlowgateConstant.defaultPageSize;
    } else if (pageSize > FlowgateConstant.maxPageSize) {
        pageSize = FlowgateConstant.maxPageSize;
    }
    PageRequest pageRequest = PageRequest.of(currentPage - 1, pageSize);
    WormholeUserDetails user = accessTokenService.getCurrentUser(request);
    try {
        Page<SDDCSoftwareConfig> result = sddcRepository.findAllByUserId(user.getUserId(), pageRequest);
        for (SDDCSoftwareConfig sddcSoftwareConfig : result.getContent()) {
            sddcSoftwareConfig.setPassword(null);
        }
        return result;
    } catch (Exception e) {
        throw new WormholeRequestException(e.getMessage());
    }
}
Also used : SDDCSoftwareConfig(com.vmware.flowgate.common.model.SDDCSoftwareConfig) WormholeRequestException(com.vmware.flowgate.exception.WormholeRequestException) PageRequest(org.springframework.data.domain.PageRequest) WormholeUserDetails(com.vmware.flowgate.util.WormholeUserDetails) GeneralSecurityException(java.security.GeneralSecurityException) NoSuchElementException(java.util.NoSuchElementException) WormholeRequestException(com.vmware.flowgate.exception.WormholeRequestException) IOException(java.io.IOException) WormholeException(com.vmware.flowgate.common.exception.WormholeException) UnsupportedEncodingException(java.io.UnsupportedEncodingException) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 15 with WormholeUserDetails

use of com.vmware.flowgate.util.WormholeUserDetails in project flowgate by vmware.

the class AuthControllerTest method updateUserExample1.

@Test
public void updateUserExample1() throws Exception {
    WormholeUserDetails userdetail = new WormholeUserDetails();
    String userId = UUID.randomUUID().toString();
    userdetail.setUserId(userId);
    List<String> rolenames = new ArrayList<String>();
    rolenames.add("admin");
    WormholeUser adminUser = new WormholeUser();
    adminUser.setUserName("admin");
    adminUser.setRoleNames(rolenames);
    adminUser.setId(userId);
    userRepository.save(adminUser);
    Mockito.doReturn(userdetail).when(tokenService).getCurrentUser(any());
    WormholeUser user = createUser();
    userRepository.save(user);
    this.mockMvc.perform(put("/v1/auth/user").contentType(MediaType.APPLICATION_JSON_VALUE).content(objectMapper.writeValueAsString(user))).andExpect(status().isOk()).andDo(document("AuthController-updateUser-example", requestFields(fieldWithPath("id").description("ID of User, created by flowgate"), fieldWithPath("userName").description("userName.").type(JsonFieldType.STRING), fieldWithPath("gender").description("gender").type(JsonFieldType.NUMBER), fieldWithPath("password").description("password").type(JsonFieldType.STRING), fieldWithPath("mobile").description("mobile").type(JsonFieldType.STRING), fieldWithPath("status").description("status").type(JsonFieldType.NUMBER), fieldWithPath("createTime").description("createTime").type(Date.class), fieldWithPath("emailAddress").description("emailAddress").type(JsonFieldType.STRING), fieldWithPath("roleNames").description("roleNames").type(List.class), fieldWithPath("userGroupIDs").description("userGroupIDs").type(List.class), fieldWithPath("lastPasswordResetDate").description("lastPasswordResetDate").type(JsonFieldType.NUMBER)))).andReturn();
    userRepository.deleteById(user.getId());
    userRepository.deleteById(adminUser.getId());
}
Also used : WormholeUserDetails(com.vmware.flowgate.util.WormholeUserDetails) ArrayList(java.util.ArrayList) WormholeUser(com.vmware.flowgate.common.model.WormholeUser) SpringBootTest(org.springframework.boot.test.context.SpringBootTest) Test(org.junit.Test)

Aggregations

WormholeUserDetails (com.vmware.flowgate.util.WormholeUserDetails)29 WormholeUser (com.vmware.flowgate.common.model.WormholeUser)18 ArrayList (java.util.ArrayList)14 Test (org.junit.Test)12 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)12 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)10 WormholeRequestException (com.vmware.flowgate.exception.WormholeRequestException)9 FacilitySoftwareConfig (com.vmware.flowgate.common.model.FacilitySoftwareConfig)4 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)3 AuthToken (com.vmware.flowgate.common.model.AuthToken)3 SDDCSoftwareConfig (com.vmware.flowgate.common.model.SDDCSoftwareConfig)3 AuthorityUtil (com.vmware.flowgate.util.AuthorityUtil)3 IOException (java.io.IOException)3 MvcResult (org.springframework.test.web.servlet.MvcResult)3 ResponseStatus (org.springframework.web.bind.annotation.ResponseStatus)3 DecodedJWT (com.auth0.jwt.interfaces.DecodedJWT)2 IntegrationStatus (com.vmware.flowgate.common.model.IntegrationStatus)2 Optional (java.util.Optional)2 Cookie (javax.servlet.http.Cookie)2 PageRequest (org.springframework.data.domain.PageRequest)2