List of usage examples for org.springframework.jdbc.core PreparedStatementSetter PreparedStatementSetter
PreparedStatementSetter
From source file:org.cloudfoundry.identity.uaa.scim.jdbc.JdbcScimGroupProvisioning.java
public ScimGroup update(final String id, final ScimGroup group, final String zoneId) throws InvalidScimResourceException, ScimResourceNotFoundException { try {/*from ww w. ja v a 2s .c om*/ validateGroup(group); int updated = jdbcTemplate.update(UPDATE_GROUP_SQL, new PreparedStatementSetter() { @Override public void setValues(PreparedStatement ps) throws SQLException { int pos = 1; ps.setInt(pos++, group.getVersion() + 1); ps.setString(pos++, group.getDisplayName()); ps.setString(pos++, group.getDescription()); ps.setTimestamp(pos++, new Timestamp(new Date().getTime())); ps.setString(pos++, id); ps.setInt(pos++, group.getVersion()); ps.setString(pos++, zoneId); } }); if (updated != 1) { throw new IncorrectResultSizeDataAccessException(1, updated); } return retrieve(id, zoneId); } catch (DuplicateKeyException ex) { throw new InvalidScimResourceException( "A group with displayName: " + group.getDisplayName() + " already exists"); } }
From source file:org.cloudfoundry.identity.uaa.scim.jdbc.JdbcScimUserProvisioning.java
@Override public ScimUser create(final ScimUser user) { if (!hasText(user.getOrigin())) { user.setOrigin(OriginKeys.UAA);/*w ww . j av a2s . c om*/ } validate(user); logger.debug("Creating new user: " + user.getUserName()); final String id = UUID.randomUUID().toString(); final String identityZoneId = IdentityZoneHolder.get().getId(); final String origin = user.getOrigin(); try { jdbcTemplate.update(CREATE_USER_SQL, new PreparedStatementSetter() { @Override public void setValues(PreparedStatement ps) throws SQLException { Timestamp t = new Timestamp(new Date().getTime()); ps.setString(1, id); ps.setInt(2, user.getVersion()); ps.setTimestamp(3, t); ps.setTimestamp(4, t); ps.setString(5, user.getUserName()); ps.setString(6, user.getPrimaryEmail()); if (user.getName() == null) { ps.setString(7, null); ps.setString(8, null); } else { ps.setString(7, user.getName().getGivenName()); ps.setString(8, user.getName().getFamilyName()); } ps.setBoolean(9, user.isActive()); String phoneNumber = extractPhoneNumber(user); ps.setString(10, phoneNumber); ps.setBoolean(11, user.isVerified()); ps.setString(12, origin); ps.setString(13, hasText(user.getExternalId()) ? user.getExternalId() : null); ps.setString(14, identityZoneId); ps.setString(15, user.getSalt()); ps.setTimestamp(16, getPasswordLastModifiedTimestamp(t)); ps.setNull(17, Types.BIGINT); ps.setNull(18, Types.BIGINT); ps.setString(19, user.getPassword()); } }); } catch (DuplicateKeyException e) { ScimUser existingUser = query("userName eq \"" + user.getUserName() + "\" and origin eq \"" + (hasText(user.getOrigin()) ? user.getOrigin() : OriginKeys.UAA) + "\"").get(0); Map<String, Object> userDetails = new HashMap<>(); userDetails.put("active", existingUser.isActive()); userDetails.put("verified", existingUser.isVerified()); userDetails.put("user_id", existingUser.getId()); throw new ScimResourceAlreadyExistsException("Username already in use: " + existingUser.getUserName(), userDetails); } return retrieve(id); }
From source file:org.cloudfoundry.identity.uaa.scim.jdbc.JdbcScimUserProvisioning.java
@Override public ScimUser update(final String id, final ScimUser user) throws InvalidScimResourceException { validate(user);//from www.java 2s . co m logger.debug("Updating user " + user.getUserName()); final String origin = hasText(user.getOrigin()) ? user.getOrigin() : OriginKeys.UAA; final String zoneId = IdentityZoneHolder.get().getId(); int updated = jdbcTemplate.update(UPDATE_USER_SQL, new PreparedStatementSetter() { @Override public void setValues(PreparedStatement ps) throws SQLException { int pos = 1; Timestamp t = new Timestamp(new Date().getTime()); ps.setInt(pos++, user.getVersion() + 1); ps.setTimestamp(pos++, t); ps.setString(pos++, user.getUserName()); ps.setString(pos++, user.getPrimaryEmail()); ps.setString(pos++, user.getName().getGivenName()); ps.setString(pos++, user.getName().getFamilyName()); ps.setBoolean(pos++, user.isActive()); ps.setString(pos++, extractPhoneNumber(user)); ps.setBoolean(pos++, user.isVerified()); ps.setString(pos++, origin); ps.setString(pos++, hasText(user.getExternalId()) ? user.getExternalId() : null); ps.setString(pos++, user.getSalt()); ps.setString(pos++, id); ps.setInt(pos++, user.getVersion()); ps.setString(pos++, zoneId); } }); ScimUser result = retrieve(id); if (updated == 0) { throw new OptimisticLockingFailureException( String.format("Attempt to update a user (%s) with wrong version: expected=%d but found=%d", id, result.getVersion(), user.getVersion())); } if (updated > 1) { throw new IncorrectResultSizeDataAccessException(1); } return result; }
From source file:org.cloudfoundry.identity.uaa.scim.jdbc.JdbcScimUserProvisioning.java
@Override public void changePassword(final String id, String oldPassword, final String newPassword) throws ScimResourceNotFoundException { if (oldPassword != null && !checkPasswordMatches(id, oldPassword)) { throw new BadCredentialsException("Old password is incorrect"); }// www. jav a 2s. c o m if (checkPasswordMatches(id, newPassword)) { return; //we don't want to update the same password } final String encNewPassword = passwordEncoder.encode(newPassword); final String zoneId = IdentityZoneHolder.get().getId(); int updated = jdbcTemplate.update(CHANGE_PASSWORD_SQL, new PreparedStatementSetter() { @Override public void setValues(PreparedStatement ps) throws SQLException { Timestamp t = new Timestamp(System.currentTimeMillis()); ps.setTimestamp(1, t); ps.setString(2, encNewPassword); ps.setTimestamp(3, getPasswordLastModifiedTimestamp(t)); ps.setString(4, id); ps.setString(5, zoneId); } }); if (updated == 0) { throw new ScimResourceNotFoundException("User " + id + " does not exist"); } if (updated != 1) { throw new ScimResourceConstraintFailedException("User " + id + " duplicated"); } }
From source file:org.cloudfoundry.identity.uaa.scim.JdbcScimUserProvisioning.java
@Override public ScimUser createUser(final ScimUser user, final String password) throws InvalidPasswordException, InvalidUserException { passwordValidator.validate(password, user); validate(user);/* ww w . j a v a2 s. co m*/ logger.info("Creating new user: " + user.getUserName()); final String id = UUID.randomUUID().toString(); try { jdbcTemplate.update(CREATE_USER_SQL, new PreparedStatementSetter() { public void setValues(PreparedStatement ps) throws SQLException { ps.setString(1, id); ps.setInt(2, user.getVersion()); ps.setTimestamp(3, new Timestamp(new Date().getTime())); ps.setTimestamp(4, new Timestamp(new Date().getTime())); ps.setString(5, user.getUserName()); ps.setString(6, user.getPrimaryEmail()); ps.setString(7, user.getName().getGivenName()); ps.setString(8, user.getName().getFamilyName()); ps.setBoolean(9, user.isActive()); ps.setLong(10, UaaAuthority.fromUserType(user.getUserType()).value()); String phoneNumber = extractPhoneNumber(user); ps.setString(11, phoneNumber); ps.setString(12, passwordEncoder.encode(password)); } }); } catch (DuplicateKeyException e) { throw new UserAlreadyExistsException( "Username already in use (could be inactive account): " + user.getUserName()); } return retrieveUser(id); }
From source file:org.cloudfoundry.identity.uaa.scim.JdbcScimUserProvisioning.java
@Override public ScimUser updateUser(final String id, final ScimUser user) throws InvalidUserException { validate(user);/*from w w w .j av a 2 s.co m*/ logger.info("Updating user " + user.getUserName()); int updated = jdbcTemplate.update(UPDATE_USER_SQL, new PreparedStatementSetter() { public void setValues(PreparedStatement ps) throws SQLException { ps.setInt(1, user.getVersion() + 1); ps.setTimestamp(2, new Timestamp(new Date().getTime())); ps.setString(3, user.getPrimaryEmail()); ps.setString(4, user.getName().getGivenName()); ps.setString(5, user.getName().getFamilyName()); ps.setBoolean(6, user.isActive()); ps.setLong(7, UaaAuthority.fromUserType(user.getUserType()).value()); ps.setString(8, extractPhoneNumber(user)); ps.setString(9, id); ps.setInt(10, user.getVersion()); } }); ScimUser result = retrieveUser(id); if (updated == 0) { throw new OptimisticLockingFailureException( String.format("Attempt to update a user (%s) with wrong version: expected=%d but found=%d", id, result.getVersion(), user.getVersion())); } if (updated > 1) { throw new IncorrectResultSizeDataAccessException(1); } return result; }
From source file:org.cloudfoundry.identity.uaa.scim.JdbcScimUserProvisioning.java
@Override public boolean changePassword(final String id, String oldPassword, final String newPassword) throws UserNotFoundException { if (oldPassword != null) { checkPasswordMatches(id, oldPassword); }//www .j av a 2s .c o m int updated = jdbcTemplate.update(CHANGE_PASSWORD_SQL, new PreparedStatementSetter() { public void setValues(PreparedStatement ps) throws SQLException { ps.setTimestamp(1, new Timestamp(new Date().getTime())); ps.setString(2, passwordEncoder.encode(newPassword)); ps.setString(3, id); } }); if (updated == 0) { throw new UserNotFoundException("User " + id + " does not exist"); } if (updated != 1) { throw new IncorrectResultSizeDataAccessException(1); } return true; }
From source file:org.cloudfoundry.identity.uaa.zone.JdbcIdentityZoneProvisioning.java
@Override public IdentityZone create(final IdentityZone identityZone) { try {// w w w . j a va 2 s . c o m jdbcTemplate.update(CREATE_IDENTITY_ZONE_SQL, new PreparedStatementSetter() { @Override public void setValues(PreparedStatement ps) throws SQLException { ps.setString(1, identityZone.getId().trim()); ps.setInt(2, identityZone.getVersion()); ps.setTimestamp(3, new Timestamp(new Date().getTime())); ps.setTimestamp(4, new Timestamp(new Date().getTime())); ps.setString(5, identityZone.getName()); ps.setString(6, identityZone.getSubdomain().toLowerCase()); ps.setString(7, identityZone.getDescription()); ps.setString(8, identityZone.getConfig() != null ? JsonUtils.writeValueAsString(identityZone.getConfig()) : null); } }); } catch (DuplicateKeyException e) { throw new ZoneAlreadyExistsException(e.getMostSpecificCause().getMessage(), e); } return retrieve(identityZone.getId()); }
From source file:org.cloudfoundry.identity.uaa.zone.JdbcIdentityZoneProvisioning.java
@Override public IdentityZone update(final IdentityZone identityZone) { try {//from w w w . j av a 2 s. com jdbcTemplate.update(UPDATE_IDENTITY_ZONE_SQL, new PreparedStatementSetter() { @Override public void setValues(PreparedStatement ps) throws SQLException { ps.setInt(1, identityZone.getVersion() + 1); ps.setTimestamp(2, new Timestamp(new Date().getTime())); ps.setString(3, identityZone.getName()); ps.setString(4, identityZone.getSubdomain().toLowerCase()); ps.setString(5, identityZone.getDescription()); ps.setString(6, identityZone.getConfig() != null ? JsonUtils.writeValueAsString(identityZone.getConfig()) : null); ps.setString(7, identityZone.getId().trim()); } }); } catch (DuplicateKeyException e) { //duplicate subdomain throw new ZoneAlreadyExistsException(e.getMostSpecificCause().getMessage(), e); } return retrieve(identityZone.getId()); }
From source file:org.sipfoundry.sipxconfig.firewall.FirewallManagerImpl.java
@Override public void saveServerGroup(final ServerGroup serverGroup) { String sql;/* ww w .j a v a2 s . com*/ if (serverGroup.isNew()) { sql = "insert into firewall_server_group (firewall_server_group_id, name, servers) values " + "(nextval('firewall_server_group_seq'),?,?)"; } else { sql = "update firewall_server_group set name = ?, servers = ? where firewall_server_group_id = ?"; } m_jdbc.update(sql, new PreparedStatementSetter() { public void setValues(PreparedStatement ps) throws SQLException { ps.setString(1, serverGroup.getName()); ps.setString(2, serverGroup.getServerList()); if (!serverGroup.isNew()) { ps.setInt(3, serverGroup.getId()); } } }); }