1

我正在用Twitter测试Oauth2,根据discussions Twitter只允许127.0.0.1(它认为localhost无效)。如何将127.0.0.1重定向到本地主机(Java)?

我使用JavaScript来打开一个弹出窗口,并检测回调到urlI注册:https://127.0.0.1:8144/Oauth2Callback

然而,我的JavaScript从localhost起源,并根据sources两个被认为是“相同的不同起源'政策。

我该如何编写从127.0.0.1localhost的重定向?

我正在使用Java &也tuckey-url-rewrite,所以要么工作。


我的控制器看起来是这样的:

@RequestMapping("/oauth2callback") 
@ResponseBody 
public String callback() { 
    return "oauth2callback"; 
} 

<rule> 
    <name>Twitter Hack</name> 
<condition name="host" operator="equal"> ??? 127.0.0.1 ??? /condition> 
    <from>(.*)</from> 
    <to type="redirect"> ??? localhost ???</to> 
</rule> 

我想:

twitter --(callback)--> 127 --(redirect)--> localhost

+2

是不是localhost和127.0.0.1是一回事。你应该能够使用它。 – 0xcaff

+0

也许修改你的主机文件到127.0.0.1到localhost?或者反之亦然。我认为他们我们是一样的,尽管..哦。 – DeadChex

回答

0

这似乎工作:

@RequestMapping("/oauth2callback") 
public String callback(HttpServletRequest request) { 

    /* 
    * Terrible hack for testing Twitter Oauth on 'localhost' 
    */ 
    if (request.getServerName().contains("127.0.0.1")){ 
     int port = request.getServerPort(); 
     String query = (request.getQueryString() == null) ? "" : "?" +request.getQueryString(); 
     String url = "redirect:https://localhost:" + port +"/oauth2callback" + query; 
     return url; 
    } 

    return "account/oauth2callback"; 
} 

account/oauth2callback是一个简单的JSP只:

<body> 
    <p>oauth2callback</p> 
</body> 

有可能是一个更好的方式,通过tuckey-URL重写做到这一点。

1

检查你的操作系统的等/主机文件和设置的127.0。 0.1到localhost字符串。它应该在那里默认,但有时它可能是一个问题。在Windows上,它出现在C:\ windows \ System \ drivers \ etc \文件夹下。

它是您的操作系统的名称解析,因此您可以将IP映射到名称以解决主机上的问题。

相关问题