use of org.eclipse.kapua.commons.model.id.KapuaEid in project kapua by eclipse.
the class AccountServiceTest method testCreate.
@Test
public void testCreate() throws Exception {
// KapuaPeid accountPeid = KapuaEidGenerator.generate();//
KapuaId scopeId = new KapuaEid(BigInteger.valueOf(1));
KapuaLocator locator = KapuaLocator.getInstance();
long accountSerial = (new Date()).getTime();
AccountCreator accountCreator = this.getTestAccountCreator(scopeId, accountSerial);
AccountService accountService = locator.getService(AccountService.class);
Account account = accountService.create(accountCreator);
//
// Account asserts
assertNotNull(account);
assertNotNull(account.getId());
assertNotNull(account.getId().getId());
assertTrue(account.getOptlock() >= 0);
assertTrue(account.getScopeId().equals(scopeId));
assertTrue(account.getName().equals(accountCreator.getOrganizationName()));
assertNotNull(account.getOrganization());
assertTrue(account.getOrganization().getEmail().equals(accountCreator.getOrganizationEmail()));
assertNotNull(account.getCreatedOn());
assertNotNull(account.getCreatedBy());
assertNotNull(account.getModifiedOn());
assertNotNull(account.getModifiedBy());
}
use of org.eclipse.kapua.commons.model.id.KapuaEid in project kapua by eclipse.
the class AccountServiceTest method testUpdate.
@Test
public void testUpdate() throws Exception {
// KapuaPeid accountPeid = KapuaEidGenerator.generate();//
KapuaId scopeId = new KapuaEid(BigInteger.valueOf(1));
KapuaLocator locator = KapuaLocator.getInstance();
long accountSerial = (new Date()).getTime();
AccountCreator accountCreator = this.getTestAccountCreator(scopeId, accountSerial);
AccountService accountService = locator.getService(AccountService.class);
Account account = accountService.create(accountCreator);
account = accountService.find(account.getScopeId(), account.getId());
Organization org = account.getOrganization();
org.setAddressLine1("5th evenue, NY");
account.setOrganization(org);
Account accountUpd = accountService.update(account);
//
// Account asserts
assertNotNull(accountUpd);
assertNotNull(accountUpd.getId());
assertNotNull(accountUpd.getId().getId());
assertTrue(accountUpd.getOptlock() >= 0);
assertTrue(accountUpd.getId().equals(account.getId()));
assertTrue(accountUpd.getScopeId().equals(account.getScopeId()));
assertTrue(accountUpd.getName().equals(account.getName()));
assertNotNull(accountUpd.getOrganization());
assertTrue(accountUpd.getOrganization().getAddressLine1().equals(org.getAddressLine1()));
assertNotNull(accountUpd.getCreatedOn().equals(account.getCreatedOn()));
assertNotNull(accountUpd.getCreatedBy().equals(account.getCreatedBy()));
assertNotNull(account.getModifiedOn());
assertNotNull(account.getModifiedBy());
}
use of org.eclipse.kapua.commons.model.id.KapuaEid in project kapua by eclipse.
the class AuthenticationServiceShiroImpl method login.
@Override
public AccessToken login(AuthenticationCredentials authenticationToken) throws KapuaException {
Subject currentUser = SecurityUtils.getSubject();
if (currentUser.isAuthenticated()) {
logger.info("Thread already authenticated for thread '{}' - '{}' - '{}'", new Object[] { Thread.currentThread().getId(), Thread.currentThread().getName(), currentUser.toString() });
throw new KapuaAuthenticationException(KapuaAuthenticationErrorCodes.SUBJECT_ALREADY_LOGGED);
}
// AccessToken accessToken = null;
if (authenticationToken instanceof UsernamePasswordTokenImpl) {
UsernamePasswordTokenImpl usernamePasswordToken = (UsernamePasswordTokenImpl) authenticationToken;
MDC.put(KapuaSecurityUtils.MDC_USERNAME, usernamePasswordToken.getUsername());
UsernamePasswordToken shiroToken = new UsernamePasswordToken(usernamePasswordToken.getUsername(), usernamePasswordToken.getPassword());
try {
currentUser.login(shiroToken);
Subject shiroSubject = SecurityUtils.getSubject();
Session shiroSession = shiroSubject.getSession();
KapuaEid scopeId = (KapuaEid) shiroSession.getAttribute("scopeId");
KapuaEid userScopeId = (KapuaEid) shiroSession.getAttribute("userScopeId");
KapuaEid userId = (KapuaEid) shiroSession.getAttribute("userId");
// create the access token
String generatedTokenKey = generateToken();
AccessToken accessToken = new AccessTokenImpl(userId, scopeId, userScopeId, generatedTokenKey);
KapuaSession kapuaSession = new KapuaSession(accessToken, scopeId, userScopeId, userId, usernamePasswordToken.getUsername());
KapuaSecurityUtils.setSession(kapuaSession);
shiroSubject.getSession().setAttribute(KapuaSession.KAPUA_SESSION_KEY, kapuaSession);
logger.info("Login for thread '{}' - '{}' - '{}'", new Object[] { Thread.currentThread().getId(), Thread.currentThread().getName(), shiroSubject.toString() });
return kapuaSession.getAccessToken();
} catch (ShiroException se) {
KapuaAuthenticationException kae = null;
if (se instanceof UnknownAccountException) {
kae = new KapuaAuthenticationException(KapuaAuthenticationErrorCodes.INVALID_USERNAME, se, usernamePasswordToken.getUsername());
} else if (se instanceof DisabledAccountException) {
kae = new KapuaAuthenticationException(KapuaAuthenticationErrorCodes.DISABLED_USERNAME, se, usernamePasswordToken.getUsername());
} else if (se instanceof LockedAccountException) {
kae = new KapuaAuthenticationException(KapuaAuthenticationErrorCodes.LOCKED_USERNAME, se, usernamePasswordToken.getUsername());
} else if (se instanceof IncorrectCredentialsException) {
kae = new KapuaAuthenticationException(KapuaAuthenticationErrorCodes.INVALID_CREDENTIALS, se, usernamePasswordToken.getUsername());
} else if (se instanceof ExpiredCredentialsException) {
kae = new KapuaAuthenticationException(KapuaAuthenticationErrorCodes.EXPIRED_CREDENTIALS, se, usernamePasswordToken.getUsername());
} else {
throw KapuaAuthenticationException.internalError(se);
}
currentUser.logout();
throw kae;
}
} else {
throw new KapuaAuthenticationException(KapuaAuthenticationErrorCodes.INVALID_CREDENTIALS_TOKEN_PROVIDED);
}
}
use of org.eclipse.kapua.commons.model.id.KapuaEid in project kapua by eclipse.
the class PermissionFactoryImpl method parseString.
@Override
public Permission parseString(String stringPermission) throws KapuaException {
StringTokenizer st = new StringTokenizer(stringPermission, ":");
int iTokensCount = st.countTokens();
if (iTokensCount < 1 || iTokensCount > 3) {
throw new KapuaAuthorizationException(KapuaAuthorizationErrorCodes.INVALID_STRING_PERMISSION, null, stringPermission);
}
//
// Build the new Permission
String domain = st.nextToken();
Actions action = null;
if (iTokensCount > 1) {
action = Actions.valueOf(st.nextToken());
}
KapuaId scopeTargetId = null;
if (iTokensCount > 2) {
try {
BigInteger kapuaId = new BigInteger(st.nextToken());
scopeTargetId = new KapuaEid(kapuaId);
} catch (IllegalArgumentException iae) {
throw new KapuaAuthorizationException(KapuaAuthorizationErrorCodes.INVALID_STRING_PERMISSION, iae, stringPermission);
}
}
return new PermissionImpl(domain, action, scopeTargetId);
}
use of org.eclipse.kapua.commons.model.id.KapuaEid in project kapua by eclipse.
the class MessageStoreServiceTest method testStore.
@Test
public void testStore() throws Exception {
KapuaId scopeId = new KapuaEid(BigInteger.valueOf(1));
long accountSerial = (new Date()).getTime();
AccountCreator accountCreator = this.getTestAccountCreator(scopeId, accountSerial);
MessageStoreService messageStoreService = locator.getService(MessageStoreService.class);
DatastoreObjectFactory dsObjectFactory = locator.getFactory(DatastoreObjectFactory.class);
MessageCreator messageCreator = dsObjectFactory.newMessageCreator();
Payload messagePayload = dsObjectFactory.newPayload();
Position messagePosition = dsObjectFactory.newPosition();
Map<String, Object> metrics = new HashMap<String, Object>();
Date now = new Date();
messageCreator.setTimestamp(now);
messageCreator.setReceivedOn(now);
String topicName = String.format("%s/CLIENT001/APP01", accountCreator.getName());
messageCreator.setTopic(topicName);
metrics.put("metric_long", 1L);
metrics.put("metric_string", "pippo");
messagePayload.setMetrics(metrics);
messagePayload.setCollectedOn(now);
messagePosition.setAltitude(1.0);
messagePosition.setTimestamp(now);
messagePayload.setPosition(messagePosition);
messagePayload.setMetrics(metrics);
messageCreator.setPayload(messagePayload);
// FIXME store fails fix it !!
// StorableId messageId = messageStoreService.store(scopeId, messageCreator);
//
// Message asserts
// assertNotNull(messageId);
// assertTrue(!messageId.toString().isEmpty());
}
Aggregations