禁用Spring OAuth2中的确认页面

时间:2016-04-15 19:36:19

标签: spring spring-mvc spring-security spring-boot spring-oauth2

我正在通过分解three interconnected sample apps at this GitHub link的集合来研究Spring OAuth2。应用程序在我的devbox上按预期工作,但authserver应用程序会生成一个不需要的确认页面,要求用户确认他们在localhost:8080/login授权客户端接收其受保护的信息。确认页面的屏幕截图如下:

需要对authserver应用的代码进行哪些具体更改才能删除确认步骤?

我知道确认页面在某些用例中很有用。但是确认页面不适合我想到的用例,那么如何禁用此步骤呢?

第一次尝试:

我在authorize.ftl, which you can read by clicking on this link中找到了授权页面的视图代码。但是当我在eclipse工作区中Ctrl-H并搜索" authorize.ftl"时,没有显示任何结果。同样,我查看了Spring OAuth2 Developer Guide。本指南中的一些提及是创建一个单独的@RequestMappig("/oauth/authorize"),但似乎不清楚如何禁用此确认步骤。

模板login视图的代码位于login.ftl, which you can read at this link

解决方案是将login.ftl代码移动到新的login.html文件中,然后使用@RequestMappig("/oauth/authorize")管理该视图吗?

如果我正确地解释了上面的开发者指南链接中的工作,那么似乎可以说

1。)链接到GET的@RequestMappig("/oauth/authorize")方法将提供登录视图,然后是另一个@RequestMappig("/oauth/authorize")

2.)然后链接到POST的另一个@RequestMappig("/oauth/authorize")方法将从视图中获取信息并绕过确认步骤。

但是在代码中看起来会是什么样?如果我理解正确的话,这是一个起点:

`@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;
}

我在方法中加入了什么?然后,我把视图代码?

开发者指南说从WhiteLabelApprovalEndpoint,java, which you can read on GitHub at this link开始。

1 个答案:

答案 0 :(得分:4)

用户确认令牌授权是可选的。如果要跳过该步骤,则需要将客户端注册为autoapprove =“*”。我很确定这是在用户指南中。