desativar a página de confirmação no Spring OAuth2
Estou estudando o Spring OAuth2 decompondo o conjunto detrês aplicativos de amostra interconectados neste link do GitHub. Os aplicativos funcionam como pretendido no meu devbox, mas oauthserver
O aplicativo produz uma página de confirmação indesejada que solicita ao usuário que confirme que autoriza o cliente emlocalhost:8080/login
para receber suas informações protegidas. Uma captura de tela da página de confirmação é a seguinte:
Que mudanças específicas precisam ser feitas noauthserver
código do aplicativo para remover a etapa de confirmação?
Entendo que a página de confirmação pode ser útil em certos casos de uso. Mas a página de confirmação não é apropriada para o caso de uso que tenho em mente, então como posso desativar esta etapa?
PRIMEIRA TENTATIVA:
Eu localizei o código de exibição da página de autorização emauthorize.ftl
, que você pode ler clicando neste link. Mas quando eu façoCtrl-H
em um espaço de trabalho do eclipse e procure "authorize.ftl", nenhum resultado será exibido. Da mesma forma, revi oGuia do desenvolvedor do Spring OAuth2. Alguma menção no guia é feita sobre a criação de um@RequestMappig("/oauth/authorize")
, mas não ficou claro como desativar esta etapa de confirmação.
O código para o modelologin
vista está emlogin.ftl
, que você pode ler neste link.
A solução é simplesmente mover ologin.ftl
código em um novologin.html
arquivo e, em seguida, gerencie essa visualização com@RequestMappig("/oauth/authorize")
?
Se eu interpretar o trabalho no link do Guia do desenvolvedor acima corretamente, parece dizer que
1.) um@RequestMappig("/oauth/authorize")
O método vinculado ao GET serviria a visualização de login, depois outro@RequestMappig("/oauth/authorize")
,
2.) depois outro@RequestMappig("/oauth/authorize")
O método vinculado ao POST retira as informações da visualização e ignora a etapa de confirmação.
Mas como isso seria no código? Aqui está um ponto de partida, se eu entendi corretamente:
`@RequestMappig("/oauth/authorize", method = RequestMethod.GET)`
public @ResponseBody SomeType method1Name(){
SomeType st = new SomeType();
//do some stuff to st
return st;
}
`@RequestMappig("/oauth/authorize", method = RequestMethod.POST)`
public @ResponseBody SomeType method2Name(){
SomeType st = new SomeType();
//do other stuff to st
return st;
}
O que eu coloco nos métodos? E então eu coloquei o código de exibição?
O Guia do desenvolvedor diz para começarWhiteLabelApprovalEndpoint,java
, que você pode ler no GitHub neste link.