Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2008 Web Cohesion
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *   http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package org.springframework.security.oauth2.provider;
 
 import java.util.List;
 import java.util.Map;
 
 
Basic, JDBC implementation of the client details service.
 
 
 	private static final Log logger = LogFactory.getLog(JdbcClientDetailsService.class);
 
 	private ObjectMapper mapper = new ObjectMapper();
 
 	private static final String CLIENT_FIELDS_FOR_UPDATE = "resource_ids, scope, "
 			+ "authorized_grant_types, web_server_redirect_uri, authorities, access_token_validity, "
 			+ "refresh_token_validity, additional_information";
 
 	private static final String CLIENT_FIELDS = "client_secret, " + ;
 
 	private static final String BASE_FIND_STATEMENT = "select client_id, " + 
 			+ " from oauth_client_details";
 
 	private static final String DEFAULT_FIND_STATEMENT =  + " order by client_id";
 
 	private static final String DEFAULT_SELECT_STATEMENT =  + " where client_id = ?";
 
 	private static final String DEFAULT_INSERT_STATEMENT = "insert into oauth_client_details (" + 
 			+ ", client_id) values (?,?,?,?,?,?,?,?,?,?)";
 
 	private static final String DEFAULT_UPDATE_STATEMENT = "update oauth_client_details " + "set "
 			+ .replaceAll(", ""=?, ") + "=? where client_id = ?";
 
 	private static final String DEFAULT_UPDATE_SECRET_STATEMENT = "update oauth_client_details "
 			+ "set client_secret = ? where client_id = ?";
 
 	private static final String DEFAULT_DELETE_STATEMENT = "delete from oauth_client_details where client_id = ?";
 
 
 
 
 
 
 
 
 	private PasswordEncoder passwordEncoder = NoOpPasswordEncoder.getInstance();
 
 	private final JdbcTemplate jdbcTemplate;
 
 
 	public JdbcClientDetailsService(DataSource dataSource) {
 		Assert.notNull(dataSource"DataSource required");
 		this. = new JdbcTemplate(dataSource);
	}

Parameters:
passwordEncoder the password encoder to set
	public void setPasswordEncoder(PasswordEncoder passwordEncoder) {
		this. = passwordEncoder;
	}
		ClientDetails details;
		try {
		}
			throw new NoSuchClientException("No client with requested id: " + clientId);
		}
		return details;
	}
	public void addClientDetails(ClientDetails clientDetailsthrows ClientAlreadyExistsException {
		try {
		}
		catch (DuplicateKeyException e) {
			throw new ClientAlreadyExistsException("Client already exists: " + clientDetails.getClientId(), e);
		}
	}
	public void updateClientDetails(ClientDetails clientDetailsthrows NoSuchClientException {
		if (count != 1) {
			throw new NoSuchClientException("No client found with id = " + clientDetails.getClientId());
		}
	}
	public void updateClientSecret(String clientIdString secretthrows NoSuchClientException {
		int count = .update(.encode(secret), clientId);
		if (count != 1) {
			throw new NoSuchClientException("No client found with id = " + clientId);
		}
	}
	public void removeClientDetails(String clientIdthrows NoSuchClientException {
		int count = .update(clientId);
		if (count != 1) {
			throw new NoSuchClientException("No client found with id = " + clientId);
		}
	}
	}
	private Object[] getFields(ClientDetails clientDetails) {
		Object[] fieldsForUpdate = getFieldsForUpdate(clientDetails);
		Object[] fields = new Object[fieldsForUpdate.length + 1];
		System.arraycopy(fieldsForUpdate, 0, fields, 1, fieldsForUpdate.length);
		fields[0] = clientDetails.getClientSecret() != null ? .encode(clientDetails.getClientSecret())
null;
		return fields;
	}
	private Object[] getFieldsForUpdate(ClientDetails clientDetails) {
		String json = null;
		try {
		}
		catch (Exception e) {
			.warn("Could not serialize additional information: " + clientDetailse);
		}
		return new Object[] {
				clientDetails.getResourceIds() != null ? StringUtils.collectionToCommaDelimitedString(clientDetails
						.getResourceIds()) : null,
				clientDetails.getScope() != null ? StringUtils.collectionToCommaDelimitedString(clientDetails
						.getScope()) : null,
				clientDetails.getAuthorizedGrantTypes() != null ? StringUtils
				clientDetails.getRegisteredRedirectUri() != null ? StringUtils
				clientDetails.getAuthorities() != null ? StringUtils.collectionToCommaDelimitedString(clientDetails
						.getAuthorities()) : nullclientDetails.getAccessTokenValiditySeconds(),
				clientDetails.getRefreshTokenValiditySeconds(), jsonclientDetails.getClientId() };
	}
	public void setSelectClientDetailsSql(String selectClientDetailsSql) {
		this. = selectClientDetailsSql;
	}
	public void setDeleteClientDetailsSql(String deleteClientDetailsSql) {
		this. = deleteClientDetailsSql;
	}
	public void setUpdateClientDetailsSql(String updateClientDetailsSql) {
		this. = updateClientDetailsSql;
	}
	public void setUpdateClientSecretSql(String updateClientSecretSql) {
		this. = updateClientSecretSql;
	}
	public void setInsertClientDetailsSql(String insertClientDetailsSql) {
		this. = insertClientDetailsSql;
	}
	public void setFindClientDetailsSql(String findClientDetailsSql) {
		this. = findClientDetailsSql;
	}

Parameters:
listFactory the list factory to set
	public void setListFactory(JdbcListFactory listFactory) {
		this. = listFactory;
	}

Parameters:
rowMapper the rowMapper to set
	public void setRowMapper(RowMapper<ClientDetailsrowMapper) {
		this. = rowMapper;
	}

Row mapper for ClientDetails.

Author(s):
Dave Syer
	private static class ClientDetailsRowMapper implements RowMapper<ClientDetails> {
		private ObjectMapper mapper = new ObjectMapper();
		public ClientDetails mapRow(ResultSet rsint rowNumthrows SQLException {
			BaseClientDetails details = new BaseClientDetails(rs.getString(1), rs.getString(3), rs.getString(4),
					rs.getString(5), rs.getString(7), rs.getString(6));
			details.setClientSecret(rs.getString(2));
			if (rs.getObject(8) != null) {
			}
			if (rs.getObject(9) != null) {
			}
			String json = rs.getString(10);
			if (json != null) {
				try {
					@SuppressWarnings("unchecked")
					Map<StringObjectadditionalInformation = .readValue(jsonMap.class);
					details.setAdditionalInformation(additionalInformation);
				}
				catch (Exception e) {
					.warn("Could not decode JSON for additional information: " + detailse);
				}
			}
			return details;
		}
	}
New to GrepCode? Check out our FAQ X