Tag: oauth

Spring security oauth2 – 无法访问/ oauth / token路由

我刚刚开始通过以下教程为我的其他api创建一个身份validation服务器: https : //jugbd.org/2017/09/19/implementing-oauth2-spring-boot-spring-security/ 。 一切顺利,直到最后我无法访问/ oauth / token路由以进行身份​​validation。 我想我需要更多的解释才能完全理解这种认证。 谢谢你,Matthieu Meunier PS:这是我的课程: ResourceServerConfig.java @Configuration @EnableResourceServer public class ResourceServerConfig extends ResourceServerConfigurerAdapter { @Override public void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers(“/”).permitAll() .antMatchers(“/api/secure/**”).authenticated(); } } AuthorizationServerConfig.java @Configuration @EnableAuthorizationServer public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter { @Autowired private AuthenticationManager authenticationManager; @Override public void configure(AuthorizationServerSecurityConfigurer serverSecurityConfigurer){ serverSecurityConfigurer .tokenKeyAccess(“permitAll()”) […]

Google Calendar API和OAuth问题

我收到了错误 com.google.gdata.util.AuthenticationException: Unknown authorization header at com.google.gdata.client.http.HttpGDataRequest.handleErrorResponse(HttpGDataRequest.java:600) ~[gdata-core-1.0.jar:na] at com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse(GoogleGDataRequest.java:563) ~[gdata-core-1.0.jar:na] at com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java:552) ~[gdata-core-1.0.jar:na] at com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java:530) ~[gdata-core-1.0.jar:na] at com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java:535) ~[gdata-core-1.0.jar:na] 尝试通过API访问Google日历数据时。 以下是该错误之前发生的事情。 1)我通过Googlevalidation: final AccessTokenResponse response = new GoogleAuthorizationCodeGrant(httpTransport, jsonFactory, clientId, clientSecret, authorizationCode, redirectUrl).execute(); final GoogleAccessProtectedResource accessProtectedResource = new GoogleAccessProtectedResource( response.accessToken, httpTransport, jsonFactory, clientId, clientSecret, response.refreshToken); LOGGER.debug(“response.accessToken: {}”, response.accessToken); this.oauthAccessToken = response.accessToken; … 2)我通过任务API读取了一些数据: this.service […]

如何在Java Android中为客户端请求设置HttpPost标头

我无法让Apache HttpClient正确发送HttpPost标头。 我没有问题发送名称值对等等,但每当我设置或添加POST标头时,它会在发出请求时消失。 我已经尝试了setHeader和addHeader,以及同时尝试这两个。 这是我的代码: HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(“https://posttestserver.com/post.php”); httppost.setHeader(“Authorization: Bearer”, accessToken); httppost.addHeader(“Authorization: Bearer”, accessToken); Log.d(“DEBUG”, “HEADERS: ” + httppost.getFirstHeader(“Authorization: Bearer”)); ResponseHandler responseHandler = new BasicResponseHandler(); String responseBody = httpclient.execute(httppost, responseHandler); Log.d(“DEBUG”, “RESPONSE: ” + responseBody); 此外,执行请求之前的调试语句打印出正确的标题,因此我知道它正在添加,然后稍后删除。 任何帮助将非常感激! 编辑:如果重要的话,这都在AsyncTask中运行。 我认为没有,因为有一个NetworkOnMainThreadexception抛出,但我认为值得一提。

当“允许不太安全的应用程序:关闭”时,如何将邮件发送到Gmail

我可以用java发送邮件到gmail,当“ Allow less secure apps: ON ”时(你可以在这里找到代码)。但是当“允许安全性较低的应用程序:关闭”时出现错误。 请给我适当的步骤来解决这个问题。 错误: 534-5.7.14 Please log in via your web browser and 534-5.7.14 then try again. 534-5.7.14 Learn more at 534 5.7.14 https://support.google.com/mail/answer/78754 ud10sm34016765pab.27 – gsmtp 我如何得到令牌: 第1步:我在google开发者控制台中创建了服务帐户。 第2步:接下来,通过使用此服务帐户,我获得了令牌。 下面,您可以找到代码。 第3步:如何使用此令牌发送邮件到Gmail? 请指导我。请知道我是新手。 指导我,如果我错了 String emailAddress = “XXXX@XXXX.XX.gserviceaccount.com”; JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); HttpTransport httpTransport; try { httpTransport = GoogleNetHttpTransport.newTrustedTransport(); GoogleCredential […]

Shopify oauth中的HMAC-SHA256问题(输出不匹配)

我正在尝试按照此文档在Shopify市场上发布应用程序。 而且我坚持在oauth文档的第3步,你必须做’HMAC签名validation’。 文档说明您必须使用应用程序的共享密钥通过HMAC-SHA256处理字符串(在下面指定)。 String = “shop=some-shop.myshopify.com&timestamp=1337178173” 我正在尝试使用Java实现这些步骤。 以下是我使用的代码的要点。 private static final String HMAC_ALGORITHM = “HmacSHA256”; String key = “hush”; String data = “shop=some-shop.myshopify.com&timestamp=1337178173”; SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(),HMAC_ALGORITHM); Mac mac = Mac.getInstance(HMAC_ALGORITHM); mac.init(keySpec); byte[] rawHmac = mac.doFinal(data.getBytes()); System.out.println(Hex.encodeHexString(rawHmac)); 代码生成以下字符串: c2812f39f84c32c2edaded339a1388abc9829babf351b684ab797f04cd94d4c7 通过Shopify开发者论坛上的一些随机搜索,我找到了一个问题的链接。 来自@Shayne的最后一条消息表明我们必须通过添加protocol字段来更改data变量。 但它没有成功:( 谁能告诉我应该做什么?我是否必须在我的代码中进行修改或者文档中的过程已经改变。 请帮忙。

无法在Android上使用XOAUTH连接到Gmail IMAP

我正在构建一个使用Gmail备份某些数据的应用。 我使用XOAUTH连接到Gmail并获得令牌和秘密。 但我无法连接到Gmail的IMAP服务。 我按照http://code.google.com/p/google-mail-xoauth-tools/wiki/JavaSampleCode上的示例进行了操作: Properties props = new Properties(); props.put(“mail.imaps.sasl.enable”, “true”); props.put(“mail.imaps.sasl.mechanisms”, “XOAUTH”); props.put(OAUTH_TOKEN_PROP, oauthToken); props.put(OAUTH_TOKEN_SECRET_PROP, oauthTokenSecret); props.put(CONSUMER_KEY_PROP, Const.CONSUMER_KEY); props.put(CONSUMER_SECRET_PROP, Const.CONSUMER_SECRET); Session session = Session.getInstance(props); session.setDebug(debug); final URLName unusedUrlName = null; IMAPSSLStore store = new IMAPSSLStore(session, unusedUrlName); final String emptyPassword = “”; store.connect(host, port, userEmail, emptyPassword); return store; 运行时,它会报告以下exception。 javax.mail.MessagingException: * BYE [UNAVAILABLE] Temporary System […]

如何包装OAuth2exception?

我们有一个使用Spring OAuth2的rest API。 用户通过身份validation后,所有JSON响应都采用以下格式: {“code” : 12345, “data” : “…” } 但是,身份validation失败的JSON响应与上述格式不一致,因为它由Spring处理。 例如,如果凭据不正确,客户端将获得带有JSON响应的HTTP状态代码400,如下所示: {“error”: “invalid_grant”, “error_description”: “Bad credentials” } 如果用户帐户被锁定,客户端将获得具有JSON响应的HTTP状态代码400,如下所示 {“error”:”invalid_grant”,”error_description”:”User account is locked”} 所有这一切都是因为Spring TokenEndpoint.handleException()正在处理与/ oauth / token相关的exception 我想更改OAuth2失败的JSON响应以遵循第一种格式。 这是我迄今为止尝试过的,没有成功: 使用具有最高优先级顺序的ControllerAdvice并使用此处所述的@ExceptionHandler 如此处所述实现OAuth2ExceptionRenderer 实现ExceptionMapper 添加了一个新的ObjectMapper,扩展了StdSerializer。 虽然我的objectmapper已初始化,但它不用于序列化exception。 也许是因为Spring直接调用MappingJackson2HttpMessageConverter而且我的应用程序中似乎有这个类的几个实例。 任何上述方法或新方法的任何帮助将受到高度赞赏。 我没有尝试过这种方法,因为我无法更改现有客户端的上下文路径。

传递oauth令牌请求的授权标头

我使用java实现oauth以获取未经授权的请求令牌。 如何传递授权标头中的参数? 我需要通过: GET /request_token HTTP/1.1 Host: photos.example.net:80 Authorization: OAuth realm=”http://photos.example.net/request_token”, oauth_consumer_key=”dpf43f3p2l4k3l03″, oauth_nonce=”kllo9940pd9333jh”, oauth_timestamp=”1191242096″, oauth_signature_method=”HMAC-SHA1″, oauth_version=”1.0″, oauth_signature=”tR3%2BTy81lMeYAr%2FFid0kMTYa%2FWM%3D” 我该怎么做?

2段OAuth和GmailprimefacesFeed

我们正在努力让双腿OAuth与GmailprimefacesFeed一起使用。 我们使用的是John Kristian,Praveen Alavilli和Dirk Ba​​lfanz提供的Java库。 [ http://oauth.net/code/]而不是GData库。 我们知道我们有正确的CONSUMER_KEY和CONSUMER_SECRET等,因为它适用于联系人Feed( http://www.google.com/m8/feeds/contacts/default/full )并且没有任何问题。 但是,对于GmailprimefacesFeed,它始终返回:HTTP / 1.1 401 Unauthorized 有任何想法吗? 我们应该尝试不同的OAuth框架,还是问题出在Google方面?

基于哈希片段的安全性如何工作?

我正在学习OAuth 2.0,无法在隐式授权流程中获得保护访问令牌的方法。 规范中有一些论文和一些看起来相互矛盾的SO答案。 有人可以清理一下吗? 来自SO答案和规范的引言令我感到困惑: (来自规范)用于将访问令牌传递到客户端的重定向URI。 可以向访问资源所有者的用户代理的资源所有者或其他应用程序公开访问令牌。 (来自规范)访问令牌凭证(以及任何机密访问令牌属性)必须在传输和存储中保密,并且仅在授权服务器,访问令牌有效的资源服务器以及客户端之间共享。发出访问令牌。 访问令牌凭证必须仅使用TLS传输。 (来自已接受和赞成的回答 )在隐式流中,访问令牌作为哈希片段传递,只有浏览器知道哈希片段。 浏览器会将哈希片段直接传递到目标网页/重定向URI,即客户端的网页(哈希片段不是HTTP请求的一部分),因此您必须使用Javascript读取哈希片段。 哈希片段不能被中间服务器/路由器拦截(这很重要)。 我的问题: P1表示通过重定向URI和P2传递给客户端的令牌表示传递通道必须是TLS编辑的。 但是P3说哈希片段没有发送到网络 。 如果访问令牌没有发送,那么它是如何到达客户端的,因为它是哈希片段? 无论如何,它必须通过网络发送不是吗? 或者使用重定向URI发送令牌可以在没有网络交易的情 唯一可能的解释 – 在引擎盖下浏览器仅通过网络发送url的非哈希部分,并且在加载新页面之后,只需插入哈希片段并使其可用于JS。 如果我是对的,我仍然无法理解为什么我们不简单地使用可靠,安全的HTTPS通道作为响应参数发送令牌?