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