Changed UserInfo references to String "userId" references

pull/165/merge
Amanda Anganes 2012-08-03 13:32:17 -04:00
parent 845976b8ac
commit b87d54b06e
7 changed files with 24 additions and 35 deletions

View File

@ -40,8 +40,8 @@ import org.mitre.oauth2.model.ClientDetailsEntity;
@Table(name="approvedsite") @Table(name="approvedsite")
@NamedQueries({ @NamedQueries({
@NamedQuery(name = "ApprovedSite.getAll", query = "select a from ApprovedSite a"), @NamedQuery(name = "ApprovedSite.getAll", query = "select a from ApprovedSite a"),
@NamedQuery(name = "ApprovedSite.getByUserInfo", query = "select a from ApprovedSite a where a.userInfo = :approvedSiteUserInfo"), @NamedQuery(name = "ApprovedSite.getByUserId", query = "select a from ApprovedSite a where a.userId = :userId"),
@NamedQuery(name = "ApprovedSite.getByClientDetails", query = "select a from ApprovedSite a where a.clientDetails = :approvedSiteClientDetails") @NamedQuery(name = "ApprovedSite.getByClientDetails", query = "select a from ApprovedSite a where a.clientDetails = :clientDetails")
}) })
public class ApprovedSite { public class ApprovedSite {
@ -49,7 +49,7 @@ public class ApprovedSite {
private Long id; private Long id;
// which user made the approval // which user made the approval
private DefaultUserInfo userInfo; private String userId;
// which OAuth2 client is this tied to // which OAuth2 client is this tied to
private ClientDetailsEntity clientDetails; private ClientDetailsEntity clientDetails;
@ -98,17 +98,16 @@ public class ApprovedSite {
/** /**
* @return the userInfo * @return the userInfo
*/ */
@ManyToOne @Basic
@JoinColumn(name="userinfo_id") public String getUserId() {
public DefaultUserInfo getUserInfo() { return userId;
return userInfo;
} }
/** /**
* @param userInfo the userInfo to set * @param userInfo the userInfo to set
*/ */
public void setUserInfo(DefaultUserInfo userInfo) { public void setUserId(String userId) {
this.userInfo = userInfo; this.userId = userId;
} }
/** /**

View File

@ -19,7 +19,6 @@ import java.util.Collection;
import org.mitre.oauth2.model.ClientDetailsEntity; import org.mitre.oauth2.model.ClientDetailsEntity;
import org.mitre.openid.connect.model.ApprovedSite; import org.mitre.openid.connect.model.ApprovedSite;
import org.mitre.openid.connect.model.UserInfo;
/** /**
* ApprovedSite repository interface * ApprovedSite repository interface
@ -57,12 +56,12 @@ public interface ApprovedSiteRepository {
/** /**
* Return a collection of ApprovedSite managed by this repository matching the * Return a collection of ApprovedSite managed by this repository matching the
* provided UserInfo * provided user id
* *
* @param userId * @param userId
* @return * @return
*/ */
public Collection<ApprovedSite> getByUserInfo(UserInfo userInfo); public Collection<ApprovedSite> getByUserId(String userId);
/** /**
* Removes the given ApprovedSite from the repository * Removes the given ApprovedSite from the repository

View File

@ -19,7 +19,6 @@ import java.util.Collection;
import org.mitre.oauth2.model.ClientDetailsEntity; import org.mitre.oauth2.model.ClientDetailsEntity;
import org.mitre.openid.connect.model.ApprovedSite; import org.mitre.openid.connect.model.ApprovedSite;
import org.mitre.openid.connect.model.UserInfo;
/** /**
* Interface for ApprovedSite service * Interface for ApprovedSite service
@ -53,7 +52,7 @@ public interface ApprovedSiteService {
* @param userId * @param userId
* @return * @return
*/ */
public Collection<ApprovedSite> getByUserInfo(UserInfo userInfo); public Collection<ApprovedSite> getByUserId(String userId);
/** /**
* Save an ApprovedSite * Save an ApprovedSite

View File

@ -1,6 +1,6 @@
CREATE TABLE approvedsite ( CREATE TABLE approvedsite (
id BIGINT AUTO_INCREMENT PRIMARY KEY, id BIGINT AUTO_INCREMENT PRIMARY KEY,
userinfo_id VARCHAR(256), userId VARCHAR(256),
clientdetails_id VARCHAR(256), clientdetails_id VARCHAR(256),
creationDate DATE, creationDate DATE,
accessDate DATE, accessDate DATE,

View File

@ -26,7 +26,6 @@ import javax.persistence.TypedQuery;
import org.mitre.oauth2.model.ClientDetailsEntity; import org.mitre.oauth2.model.ClientDetailsEntity;
import org.mitre.openid.connect.model.ApprovedSite; import org.mitre.openid.connect.model.ApprovedSite;
import org.mitre.openid.connect.model.UserInfo;
import org.mitre.openid.connect.repository.ApprovedSiteRepository; import org.mitre.openid.connect.repository.ApprovedSiteRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -58,7 +57,7 @@ public class JpaApprovedSiteRepository implements ApprovedSiteRepository {
TypedQuery<ApprovedSite> query = manager.createNamedQuery( TypedQuery<ApprovedSite> query = manager.createNamedQuery(
"ApprovedSite.getByClientDetails", ApprovedSite.class); "ApprovedSite.getByClientDetails", ApprovedSite.class);
query.setParameter("approvedSiteClientDetails", clientDetails); query.setParameter("clientDetails", clientDetails);
List<ApprovedSite> found = query.getResultList(); List<ApprovedSite> found = query.getResultList();
@ -73,10 +72,10 @@ public class JpaApprovedSiteRepository implements ApprovedSiteRepository {
@Override @Override
@Transactional @Transactional
public Collection<ApprovedSite> getByUserInfo(UserInfo userInfo) { public Collection<ApprovedSite> getByUserId(String userId) {
TypedQuery<ApprovedSite> query = manager.createNamedQuery( TypedQuery<ApprovedSite> query = manager.createNamedQuery(
"ApprovedSite.getByUserInfo", ApprovedSite.class); "ApprovedSite.getByUserId", ApprovedSite.class);
query.setParameter("approvedSiteUserInfo", userInfo); query.setParameter("userId", userId);
List<ApprovedSite> found = query.getResultList(); List<ApprovedSite> found = query.getResultList();

View File

@ -19,7 +19,6 @@ import java.util.Collection;
import org.mitre.oauth2.model.ClientDetailsEntity; import org.mitre.oauth2.model.ClientDetailsEntity;
import org.mitre.openid.connect.model.ApprovedSite; import org.mitre.openid.connect.model.ApprovedSite;
import org.mitre.openid.connect.model.UserInfo;
import org.mitre.openid.connect.repository.ApprovedSiteRepository; import org.mitre.openid.connect.repository.ApprovedSiteRepository;
import org.mitre.openid.connect.service.ApprovedSiteService; import org.mitre.openid.connect.service.ApprovedSiteService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -67,8 +66,8 @@ public class ApprovedSiteServiceImpl implements ApprovedSiteService {
} }
@Override @Override
public Collection<ApprovedSite> getByUserInfo(UserInfo userInfo) { public Collection<ApprovedSite> getByUserId(String userId) {
return approvedSiteRepository.getByUserInfo(userInfo); return approvedSiteRepository.getByUserId(userId);
} }
@Override @Override

View File

@ -21,10 +21,8 @@ import java.util.Set;
import org.mitre.oauth2.model.ClientDetailsEntity; import org.mitre.oauth2.model.ClientDetailsEntity;
import org.mitre.openid.connect.model.ApprovedSite; import org.mitre.openid.connect.model.ApprovedSite;
import org.mitre.openid.connect.model.DefaultUserInfo;
import org.mitre.openid.connect.model.WhitelistedSite; import org.mitre.openid.connect.model.WhitelistedSite;
import org.mitre.openid.connect.service.ApprovedSiteService; import org.mitre.openid.connect.service.ApprovedSiteService;
import org.mitre.openid.connect.service.UserInfoService;
import org.mitre.openid.connect.service.WhitelistedSiteService; import org.mitre.openid.connect.service.WhitelistedSiteService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
@ -52,9 +50,6 @@ import com.google.common.collect.Sets;
* *
*/ */
public class JdbcUserApprovalHandler implements UserApprovalHandler { public class JdbcUserApprovalHandler implements UserApprovalHandler {
@Autowired
UserInfoService userInfoService;
@Autowired @Autowired
ApprovedSiteService approvedSiteService; ApprovedSiteService approvedSiteService;
@ -84,13 +79,12 @@ public class JdbcUserApprovalHandler implements UserApprovalHandler {
String userId = userAuthentication.getName(); String userId = userAuthentication.getName();
ClientDetails client = clientDetailsService.loadClientByClientId(authorizationRequest.getClientId()); ClientDetails client = clientDetailsService.loadClientByClientId(authorizationRequest.getClientId());
DefaultUserInfo user = (DefaultUserInfo)userInfoService.getByUserId(userId);
//lookup ApprovedSites by userId //lookup ApprovedSites by userId
Collection<ApprovedSite> approvedSites = approvedSiteService.getByUserInfo(user); Collection<ApprovedSite> approvedSites = approvedSiteService.getByUserId(userId);
for (ApprovedSite ap : approvedSites) { for (ApprovedSite ap : approvedSites) {
if (sitesMatch(ap, authorizationRequest, user)) { if (sitesMatch(ap, authorizationRequest, userId)) {
//We have a match; update the access date on the AP entry and return true. //We have a match; update the access date on the AP entry and return true.
ap.setAccessDate(new Date()); ap.setAccessDate(new Date());
@ -108,7 +102,7 @@ public class JdbcUserApprovalHandler implements UserApprovalHandler {
newAP.setWhitelistedSite(ws); newAP.setWhitelistedSite(ws);
newAP.setAllowedScopes(ws.getAllowedScopes()); newAP.setAllowedScopes(ws.getAllowedScopes());
newAP.setCreationDate(new Date()); newAP.setCreationDate(new Date());
newAP.setUserInfo(user); newAP.setUserId(userId);
//TODO set timeout date? //TODO set timeout date?
approvedSiteService.save(newAP); approvedSiteService.save(newAP);
@ -128,7 +122,7 @@ public class JdbcUserApprovalHandler implements UserApprovalHandler {
Set<String> allowedScopes = Sets.newHashSet(Splitter.on(" ").split(scopes)); Set<String> allowedScopes = Sets.newHashSet(Splitter.on(" ").split(scopes));
newAP.setAllowedScopes(allowedScopes); newAP.setAllowedScopes(allowedScopes);
newAP.setClientDetails((ClientDetailsEntity)client); newAP.setClientDetails((ClientDetailsEntity)client);
newAP.setUserInfo((DefaultUserInfo)user); newAP.setUserId(userId);
newAP.setCreationDate(new Date()); newAP.setCreationDate(new Date());
approvedSiteService.save(newAP); approvedSiteService.save(newAP);
@ -146,7 +140,7 @@ public class JdbcUserApprovalHandler implements UserApprovalHandler {
* @param user the User making the request * @param user the User making the request
* @return true if everything matches, false otherwise * @return true if everything matches, false otherwise
*/ */
private boolean sitesMatch(ApprovedSite ap, AuthorizationRequest authReq, DefaultUserInfo user) { private boolean sitesMatch(ApprovedSite ap, AuthorizationRequest authReq, String userId) {
ClientDetails client = clientDetailsService.loadClientByClientId(authReq.getClientId()); ClientDetails client = clientDetailsService.loadClientByClientId(authReq.getClientId());
@ -156,7 +150,7 @@ public class JdbcUserApprovalHandler implements UserApprovalHandler {
if (!(ap.getClientDetails().getClientId()).equalsIgnoreCase(client.getClientId())) { if (!(ap.getClientDetails().getClientId()).equalsIgnoreCase(client.getClientId())) {
return false; return false;
} }
if (!(ap.getUserInfo().getUserId()).equalsIgnoreCase(user.getUserId())) { if (!(ap.getUserId()).equalsIgnoreCase(userId)) {
return false; return false;
} }
for (String scope : allowedScopes) { for (String scope : allowedScopes) {