moved endpoint, added param processing
parent
36b9c805d9
commit
694074ee58
|
@ -50,10 +50,15 @@ import org.springframework.web.servlet.ModelAndView;
|
||||||
import org.springframework.web.servlet.View;
|
import org.springframework.web.servlet.View;
|
||||||
import org.springframework.web.servlet.view.RedirectView;
|
import org.springframework.web.servlet.view.RedirectView;
|
||||||
|
|
||||||
|
import com.google.common.base.Splitter;
|
||||||
|
import com.google.common.collect.Sets;
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
@SessionAttributes(types = AuthorizationRequest.class)
|
@SessionAttributes(types = AuthorizationRequest.class)
|
||||||
@RequestMapping(value = "/oauth/authorize")
|
@RequestMapping(value = "/oauth/authorize")
|
||||||
public class AuthorizationEndpointRequestObject extends AbstractEndpoint implements InitializingBean{
|
public class RequestObjectAuthorizationEndpoint extends AbstractEndpoint implements InitializingBean{
|
||||||
|
|
||||||
|
// TODO: clean up member variable inheritance
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private TokenGranter tokenGranter;
|
private TokenGranter tokenGranter;
|
||||||
|
@ -62,6 +67,7 @@ public class AuthorizationEndpointRequestObject extends AbstractEndpoint impleme
|
||||||
|
|
||||||
private RedirectResolver redirectResolver = new DefaultRedirectResolver();
|
private RedirectResolver redirectResolver = new DefaultRedirectResolver();
|
||||||
|
|
||||||
|
@Autowired
|
||||||
private ClientDetailsService clientDetailsService;
|
private ClientDetailsService clientDetailsService;
|
||||||
|
|
||||||
private UserApprovalHandler userApprovalHandler = new DefaultUserApprovalHandler();
|
private UserApprovalHandler userApprovalHandler = new DefaultUserApprovalHandler();
|
||||||
|
@ -70,7 +76,7 @@ public class AuthorizationEndpointRequestObject extends AbstractEndpoint impleme
|
||||||
|
|
||||||
private String userApprovalPage = "forward:/oauth/confirm_access";
|
private String userApprovalPage = "forward:/oauth/confirm_access";
|
||||||
|
|
||||||
@RequestMapping(params = "response_type")
|
@RequestMapping(params = "request")
|
||||||
public ModelAndView authorizeRequestObject(Map<String, Object> model, @RequestParam("request") String jwtString,
|
public ModelAndView authorizeRequestObject(Map<String, Object> model, @RequestParam("request") String jwtString,
|
||||||
@RequestParam Map<String, String> parameters, SessionStatus sessionStatus, Principal principal) {
|
@RequestParam Map<String, String> parameters, SessionStatus sessionStatus, Principal principal) {
|
||||||
|
|
||||||
|
@ -78,13 +84,18 @@ public class AuthorizationEndpointRequestObject extends AbstractEndpoint impleme
|
||||||
JwtClaims claims = jwt.getClaims();
|
JwtClaims claims = jwt.getClaims();
|
||||||
|
|
||||||
String clientId = claims.getClaimAsString("client_id");
|
String clientId = claims.getClaimAsString("client_id");
|
||||||
String[] scopeString = new String[]{claims.getClaimAsString("scope")};
|
Set<String> scopes = Sets.newHashSet(Splitter.on(" ").split(claims.getClaimAsString("scope")));
|
||||||
Collection<String> scope = new HashSet<String>(Arrays.asList(scopeString));
|
|
||||||
|
|
||||||
// Manually initialize auth request instead of using @ModelAttribute
|
// Manually initialize auth request instead of using @ModelAttribute
|
||||||
// to make sure it comes from request instead of the session
|
// to make sure it comes from request instead of the session
|
||||||
|
|
||||||
AuthorizationRequest authorizationRequest = new AuthorizationRequest(parameters, null, clientId, scope);
|
// TODO: check parameter consistency, move keys to constants
|
||||||
|
String responseTypes = claims.getClaimAsString("response_type");
|
||||||
|
if (responseTypes != null) {
|
||||||
|
parameters.put("response_type", responseTypes);
|
||||||
|
}
|
||||||
|
|
||||||
|
AuthorizationRequest authorizationRequest = new AuthorizationRequest(parameters, null, clientId, scopes);
|
||||||
|
|
||||||
if (authorizationRequest.getClientId() == null) {
|
if (authorizationRequest.getClientId() == null) {
|
||||||
sessionStatus.setComplete();
|
sessionStatus.setComplete();
|
Loading…
Reference in New Issue