Package org.openstack.keystone.resources.user

Source Code of org.openstack.keystone.resources.user.RegisterResource

package org.openstack.keystone.resources.user;

import javax.inject.Inject;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

import org.platformlayer.CustomerFacingException;
import org.platformlayer.auth.OpsUser;
import org.platformlayer.auth.UserEntity;
import org.platformlayer.auth.model.RegistrationRequest;
import org.platformlayer.auth.model.RegistrationResponse;
import org.platformlayer.auth.services.RegistrationService;
import org.platformlayer.auth.services.TokenHelpers;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@Path("/api/register")
public class RegisterResource extends UserResourceBase {
  private static final Logger log = LoggerFactory.getLogger(RegisterResource.class);

  @Inject
  RegistrationService registrationService;

  @Inject
  TokenHelpers tokenHelpers;

  @POST
  @Produces({ APPLICATION_JSON, APPLICATION_XML })
  @Consumes({ APPLICATION_JSON, APPLICATION_XML })
  public RegistrationResponse doRegister(RegistrationRequest request) {
    RegistrationResponse response = register(request);

    return response;
  }

  private RegistrationResponse register(RegistrationRequest request) {
    RegistrationResponse response = new RegistrationResponse();

    String username = request.username;
    String password = request.password;

    UserEntity userEntity;
    try {
      OpsUser user = registrationService.registerUser(username, password);
      userEntity = (UserEntity) user;
    } catch (CustomerFacingException e) {
      response.errorMessage = e.getMessage();
      return response;
    }

    if (userEntity == null) {
      log.warn("Authentication request failed immediately after registration.  Username=" + username);
      throw new IllegalStateException();
    }

    response.access = tokenHelpers.buildAccess(userEntity);
    return response;
  }

}
TOP

Related Classes of org.openstack.keystone.resources.user.RegisterResource

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.