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")
@NamedQueries({
@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.getByClientDetails", query = "select a from ApprovedSite a where a.clientDetails = :approvedSiteClientDetails")
@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 = :clientDetails")
})
public class ApprovedSite {
@ -49,7 +49,7 @@ public class ApprovedSite {
private Long id;
// which user made the approval
private DefaultUserInfo userInfo;
private String userId;
// which OAuth2 client is this tied to
private ClientDetailsEntity clientDetails;
@ -98,17 +98,16 @@ public class ApprovedSite {
/**
* @return the userInfo
*/
@ManyToOne
@JoinColumn(name="userinfo_id")
public DefaultUserInfo getUserInfo() {
return userInfo;
@Basic
public String getUserId() {
return userId;
}
/**
* @param userInfo the userInfo to set
*/
public void setUserInfo(DefaultUserInfo userInfo) {
this.userInfo = userInfo;
public void setUserId(String userId) {
this.userId = userId;
}
/**

View File

@ -19,7 +19,6 @@ import java.util.Collection;
import org.mitre.oauth2.model.ClientDetailsEntity;
import org.mitre.openid.connect.model.ApprovedSite;
import org.mitre.openid.connect.model.UserInfo;
/**
* ApprovedSite repository interface
@ -57,12 +56,12 @@ public interface ApprovedSiteRepository {
/**
* Return a collection of ApprovedSite managed by this repository matching the
* provided UserInfo
* provided user id
*
* @param userId
* @return
*/
public Collection<ApprovedSite> getByUserInfo(UserInfo userInfo);
public Collection<ApprovedSite> getByUserId(String userId);
/**
* 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.openid.connect.model.ApprovedSite;
import org.mitre.openid.connect.model.UserInfo;
/**
* Interface for ApprovedSite service
@ -53,7 +52,7 @@ public interface ApprovedSiteService {
* @param userId
* @return
*/
public Collection<ApprovedSite> getByUserInfo(UserInfo userInfo);
public Collection<ApprovedSite> getByUserId(String userId);
/**
* Save an ApprovedSite

View File

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

View File

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

View File

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

View File

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