2016-07-11 25 views
0

Ich versuche mit oauth client_credential Grant-Typ akklimatisiert werden, um auf eine geschützte Ressource zugreifen (Ich benutze diese Ressource Server: https://bitbucket.org/hascode/spring-oauth2-example), die gut funktioniert gegeben Benutzerinfo vorhanden (impliziter Fluss).Zugriff auf geschützte Ressource von client_credential Grant-Typ mit Spring-Boot

Von meinem Verständnis hat client_credentials keine Benutzerinfo, so dass es Fehler auf dem Userinfo Endpunkt ein 401

2016-07-11 15:19:37.335 INFO 9747 --- [nio-9001-exec-2] o.s.b.a.s.o.r.UserInfoTokenServices  : Getting user info from: http://rain.okta1.com:1802/oauth2/v1/userinfo 
2016-07-11 15:19:37.421 INFO 9747 --- [nio-9001-exec-2] o.s.b.a.s.o.r.UserInfoTokenServices  : Could not fetch user details: class org.springframework.web.client.HttpClientErrorException, 401 Unauthorized 

auch ein Frühling Neuling Ich bin zurückkehrt, so dass nicht sicher, ob es einige configs I müssen für diesen Zuschuss Typ einzustellen, wie ich gerade durch das Tutorial aus dem gleichen Typ vorging: http://www.hascode.com/2016/03/setting-up-an-oauth2-authorization-server-and-resource-provider-with-spring-boot/

Es gibt nicht viel Config war, ist dies die volle Ressource

package com.hascode.tutorial; 

import java.util.UUID; 

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.context.annotation.Scope; 
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RestController; 

@SpringBootApplication 
@RestController 
@EnableResourceServer 
public class SampleResourceApplication { 
    public static void main(String[] args) { 
     SpringApplication.run(SampleResourceApplication.class, args); 
    } 

    @RequestMapping("/") 
    public String securedCall() { 
     return "success (id: " + UUID.randomUUID().toString().toUpperCase() + ")"; 
    } 
} 

Antwort

0

In einem oauth2-Kontext haben Sie einen Client und einen Ressourcenbesitzer. Mit dem impliziten Berechtigungstyp ist der Ressourcenbesitzer der Benutzer, der Ihre Anwendung (den Client) verwendet. Mit dem Zugriffstoken, das Sie erhalten, können Sie Ressourcen abrufen, die dem Benutzer gehören. Mit dem Client-Berechtigungsnachweis-Berechtigungstyp ist der Ressourcenbesitzer der Client. Mit dem Zugriffstoken, das Sie erhalten, können Sie also Ressourcen erhalten, die dem Client gehören.