Changed UserInfo references to String "userId" references
parent
845976b8ac
commit
b87d54b06e
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue