Tag: oauth 2.0

Spring-boot oauth2拆分授权服务器和资源服务器

我试图在spring-boot中将资源服务器从授权服务器中分离出来。 我有两个不同的应用程序,我分开运行。 在授权服务器中,我可以从oauth / token获取承载令牌,但是当我试图访问资源(在头部中发送令牌)时,我收到了无效的令牌错误。 我的目的是使用InMemoryTokenStore和承载令牌。 谁能告诉我我的代码有什么问题? 授权服务器: @SpringBootApplication public class AuthorizationServer extends WebMvcConfigurerAdapter { public static void main(String[] args) { SpringApplication.run(AuthorizationServer.class, args); } @Configuration @EnableAuthorizationServer protected static class OAuth2Config extends AuthorizationServerConfigurerAdapter { private TokenStore tokenStore = new InMemoryTokenStore(); @Autowired private AuthenticationManager authenticationManager; @Override public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception { endpoints .authenticationManager(authenticationManager) .tokenStore(tokenStore); } […]

使用Oltu传递给OAuthTokenRequest时无法使用@ Context HttpServletRequest检索发布数据

我正在使用Oltu作为Oauth2。 使用@Context HttpServletRequest请求时,我无法检索发布数据 当我使用@FormParam时,我能够检索发布数据。 在将请求传递给OAuthTokenRequest时 OAuthTokenRequest oauthRequest = new OAuthTokenRequest(request); 我收到了以下错误 {“error”:“invalid_request”,“error_description”:“缺少grant_type参数值”} 在oltu OAuthTokenRequest类上进行调试时,使用以下代码来检索param值 public String getParam(String name) { return this.request.getParameter(name); // from request it is unable to get post data.As i am getting request object using @Context HttpServletRequest request . } 据说使用@Context HttpServletRequest请求无法获取使用@Context HttpServletRequest请求的post数据所以,我的问题是 如何在jax-ws中获取带有post数据的HttpServletRequest请求,以便我可以将HttpServletRequest请求传递给OAuthTokenRequest这是我的代码 @Path(“/token”) public class TokenEndpoint { @POST @Consumes(“application/x-www-form-urlencoded”) @Produces(“application/json”) public […]

OAuth 2.0生成令牌和秘密令牌

我正在使用Apache Oltu框架实现OAuth 2.0提供程序服务器,寻找有关如何在java中生成访问令牌和秘密令牌的一些想法。 请指教。

如何使用Java访问Google Calendar REST API v3

我正在开发一个项目,我必须使用REST访问一组Google日历并使用Java。 该程序位于私人非Google服务器上,定期(通过cron作业)连接到Google帐户,获取链接到该帐户的日历列表,获取每个日历的上个月的事件,并返回包含所有日历的XML文件信息。 该程序应该能够在没有任何用户输入的情况下执行和访问日历。 目前,该项目指定只读取日历,而不是修改日历(因此只会进行GET / LIST调用)。 我查看了Google文档并使用客户端库查看了示例代码,并且在访问日历API之前,几乎所有给出的示例都需要OAuth 2.0用户同意。 甚至REST API文档页面也要求您激活OAuth 2.0以返回所请求的信息(否则返回HTTP 40X错误代码和包含错误状态和消息的JSON文件)。 我如何连接到Google Calendar REST API以获取我需要的信息,一切都是通过REST调用完成的,并且在执行时无需用户同意? 或者我是否过于复杂,只需要在Google云端控制台的Resgistered Apps部分中找到“服务器密钥”? 或者我是否要求同时使用OAuth和开发人员密钥? (我发现有人在标题下提到它:Google Calendar API v3硬编码凭据;然而,问题和解决方案是针对PHP的,我不知道Java中是否可能存在类似的东西)。 我确实看到了创建一个带有服务帐户的JWT的可能性(使用Google云控制台,注册为Web应用程序,并且它位于’证书’下),但是我没有找到如何将这个与REST调用一起使用一个Java程序。 以下链接( http://aleksz-programming.blogspot.be/2012/11/google-calendar-api.html )表示可以通过“Web服务器应用程序”或“已安装的应用程序”访问信息,但不能不详细说明。 但是,在Google OAuth 2.0文档页面上,“Web服务器应用程序”部分仍需要用户输入和同意。 这是真的吗? 我还找到了此页面( https://developers.google.com/accounts/docs/OAuth2Login ),但未能看到如何在不使用用户同意页面的情况下使用它。 我确实看到了一些“双腿OAuth”的引用。 但似乎这不是OAuth 2.0,而是版本1是做事。 这是我项目的可能解决方案吗? 如果是这样,我需要从Google Cloud Console获取哪些信息才能使其正常运行? 我希望我已经提供了足够的信息来说明我正在寻找什么,而且到目前为止还没有涵盖这个问题。 我做了研究,并没有找到足够接近我所寻找的东西。 我无法发布超过2个链接(缺乏声誉),但确实查看了Google Calendar v3 REST API,以及指定创建JWT的页面。

Spring Security OAuth2纯资源服务器

我们已经设置了OAuth2授权服务器,因此我需要创建相应的资源服务器(单独的服务器)。 我们计划使用Spring Security OAuth2项目。 他们用于设置资源服务器的文档: https://github.com/spring-projects/spring-security-oauth/wiki/oAuth2#resource-server-configuration token-services-ref应该指向令牌处理bean。 然而,似乎令牌处理由服务器本身完成,即使它是资源服务器。 似乎没有任何远程令牌服务类或与远程服务器相关的任何配置。 这与CloudFoundary UAA( https://github.com/cloudfoundry/uaa/blob/master/samples/api/src/main/webapp/WEB-INF/spring-servlet.xml )形成对比,后者具有: 有没有办法将Spring Security OAuth2用于与单独的OAuth2授权服务器通信的资源服务器? 如何设置通信端点?

Debug和Signing键之间的区别

嗨,我想为我的签名证书获取签名密钥MD5指纹。任何人请告诉签名密钥和调试密钥之间的区别。 我能够为调试密钥修改打印但是为了获得签名密钥指纹我很困惑mytocount_list.keystore在keytool -list -alias alias_name -keystore my-release-key.keystore中的含义是什么。 我使用以下链接获取签名密钥指纹。 http://code.google.com/android/add-ons/google-apis/mapkey.html#getfingerprint 。

谷歌云端点(app engine)+ oauth2与android集成

我正在尝试将谷歌应用引擎云端点API与Android集成。 我已经按照这个链接进行了相同的操作: 无法使用我的服务对象连接到我的Google端点 https://cloud.google.com/appengine/docs/java/endpoints/consume_android 基于Java的Google App Engine,Android和身份validationoauth2 这是我的Android应用程序端代码和应用程​​序引擎端点代码: **** @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Profile profile = new Profile(); profile.setDisplayName(“Alex roger”); profile.setAge(49l); new EndpointsAsyncTask(this).execute(profile); } **** public class EndpointsAsyncTask extends AsyncTask { private MyApi myApiService; private Context context; SharedPreferences settings; GoogleAccountCredential credential; private static final String PREF_ACCOUNT_NAME = “PREF_ACCOUNT_NAME”; public EndpointsAsyncTask(Context context) […]

SpringMVC – CORS过滤不适用于’授权’标题

我想在spring mvc app中添加OAuth 2.0。 应该对用户进行身份validation以获得api呼叫。 我在spring mvc控制器中设置了一个标题: @RequestMapping(value = “/admin-api/get-all-order”, method = RequestMethod.GET) public ResponseEntity getAllOrders(@RequestHeader(“Authorization”) String bearerToken) { try { List order = orderService.getAllOrders(); return new ResponseEntity(order, HttpStatus.OK); } catch (HibernateException e) { return new ResponseEntity(e.getMessage(), HttpStatus.BAD_REQUEST); } } 对于请求api,我使用了角度5.我以角度调用api调用: return this.http.get(this.getAllOrderUrl, { headers: { “Authorization”: “bearer ” + JSON.parse(localStorage.getItem(“token”))[“value”], “Content-type”: “application/json” } }).catch(error […]

Java SSL DH密钥对生成 – Prime大小错误

我目前正在将Reddit OAuth2登录到我的网络应用程序中。 握手和令牌交换在本地测试时工作正常但在服务器上运行时(托管在’OpenShift’DIY盒式磁带上)我收到以下错误: java.security.InvalidAlgorithmParameterException: Prime size must be multiple of 64, and can only range from 512 to 1024 (inclusive) 结果如何 java.lang.RuntimeException: Could not generate DH keypair 我一直在搜索大部分时间,并找到了不同的解决方案,从更改Java版本到使用BouncyCastle。 但是,我正在使用Scribe库,所以我不认为我可以实现BouncyCastle而不需要改变划线的基础,这会破坏它的目的。 安装JCE Unlimited Strength也出现了,但是我不能在OpenShift上做到这一点,因为没有root访问权限(也许可以让他们的团队之一去做)。 使用的java版本(取自java -version ): 本地试验机: java version “1.7.0_51” OpenJDK Runtime Environment (IcedTea 2.4.4) (7u51-2.4.4-1ubuntu1) OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode) OpenShift服务器: java […]

了解OAuth2客户端凭据流

我正在尝试理解并实现新REST服务器和现有客户端应用程序之间的客户端凭据流。 我已经像这样设置了spring-security OAuth2。 根据我的理解,到目前为止,我的服务器现在应该支持以下请求: $ curl -X -v -d ‘client_id=the_client&client_secret=secret&grant_type=client_credentials’ -X POST “http://localhost:9090/oauth/token” 但我明白了 InsufficientAuthenticationException: There is no client authentication 由Principal在这里为null引起的(spring-security code): @FrameworkEndpoint @RequestMapping(value = “/oauth/token”) public class TokenEndpoint extends AbstractEndpoint { @RequestMapping public ResponseEntity getAccessToken(Principal principal, @RequestParam(“grant_type”) String grantType, @RequestParam Map parameters) { if (!(principal instanceof Authentication)) { throw new InsufficientAuthenticationException( 所以看来,我需要先对服务器进行身份validation 。 但这不是我想要做的 […]