2013-06-17 26 views
6

Apache Oltu çerçevesini kullanarak OAuth 2.0 sağlayıcı sunucusunu uygulıyorum, java'daki erişim belirteci ve gizli belirteçlerin nasıl oluşturulacağı hakkında bir fikir arıyorum. Tavsiye lütfen.OAuth 2.0 Oluşturma Jetonu ve Gizli Jetonu

+0

Oatuh belgelerini takip edin, google it ve kendinize yardım edin! Öneri için –

cevap

14

OAuth 2.0 specification jetonu ve gizli göstergelerini nasıl oluşturulduğu konusunda hiçbir şey söylemez. Böylece, belirteçleri oluşturmak için varolan/anchor verilerini kullanıp kullanmayacağınızı veya belirteçler oluşturmak için rasgele sıralamayı kullanmak isteyip istemediğiniz size kalmış. Tek fark, muhtemelen bilinen veriyi (ör. Kullanıcı adı, oluşturma tarihi artı vb. Gibi kullanıcı verileri) kullanırsanız, ihtiyacınız olan her zaman simgeleri geri yükleyebilirsiniz. Rastgele bir veri dizisi kullanırsanız, kayıp olduklarında jetonları geri yükleyemezsiniz. Başka bir deyişle, RFC sizi üretim sürecinde kısıtlamaz.

Herhalde o zaman Base64 kodlamayı yapmak, Kullanıcı Ayrıntıları veri artı rastgele verilerin dize birleştirme kullanmak.

String keySource = username + creationDate + random; 
byte [] tokenByte = new Base64(true).encodeBase64(keySource.getBytes()); 
String token = new String(tokenByte); 
+1

teşekkürler, benim gereksinim, müşteri kimliği, app id vb gibi bilgileri içeren bir kendini gösteren belirteci var ve verilen belirtecin şifresini çözmek ve belirtide bilgi almak için kullanılabilecek bir gizli belirteci var. Bunu başarmanın bir yolunu öner. – willsteel

+1

Ardından istemci kimliği, uygulama kimliği vb. Belirteci oluşturabilirsiniz. Gizli belirteci üret ve DB'de sakla. Ve gizli belirteci ile verilen belirteci şifrelemek/şifresini çözmek için DES algoritmasını kullanın. Bu, DES'in java kullanımı ile ilgili örneğidir. Http://java-espresso.blogspot.com/2011/09/des-algorithm-code-in-java.html – Sqeezer

+0

Tam olarak aradığım şey için teşekkür ederiz. DES'den daha güvenli olan diğer algoritmalardan bazılarını önerirsiniz ve benim ihtiyaçlarımız için kullanılabilir mi? – willsteel