2013-06-17 9 views
6

Ich implementiere den OAuth 2.0-Providerserver mithilfe des Apache Oltu-Frameworks und suche nach einer Idee zum Generieren des Zugriffstokens und der geheimen Token in Java. Bitte beraten.OAuth 2.0 Generieren von Token- und geheimen Token

+0

Folgen Sie Oatuh Dokumentation, google es und helfen Sie sich selbst! –

Antwort

14

OAuth 2.0 specification sagt nichts darüber aus, wie Token und geheime Token generiert werden. Daher liegt es an Ihnen, ob Sie einige existierende/Anker-Daten verwenden, um Token zu generieren, oder ob Sie eine zufällige Sequenz verwenden möchten, um Token zu generieren. Der einzige Unterschied besteht darin, dass Sie, wenn Sie vermutlich bekannte Daten verwenden (z. B. Benutzerdaten wie Benutzername, Erstellungsdatum usw.), Tokens jederzeit wiederherstellen können, wenn Sie dies benötigen. Wenn Sie eine zufällige Datensequenz verwenden, können Sie die Token nicht wiederherstellen, sobald sie verloren gegangen sind.

Mit anderen Worten, RFC beschränkt Sie nicht auf Generierungsprozess.

Ich würde wahrscheinlich Zeichenfolge Verkettung von Benutzerdetails Daten plus einige zufällige Daten verwenden, dann tun Base64-Codierung.

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

danke für den Vorschlag, meine Anforderung ist, ein in sich geschlossenes Token mit Informationen wie Client-ID, App-ID usw. und ein geheimes Token, das verwendet werden kann, um das ausgestellte Token zu entschlüsseln und die Informationen in das Token zu erhalten. schlage mir einen Weg vor, um das zu erreichen. – willsteel

+1

Dann können Sie das Token erstellen, das Client-ID, App-ID usw. ist. Generieren Sie ein geheimes Token und speichern Sie es in der DB. Und verwenden Sie den DES-Algorithmus zum Verschlüsseln/Entschlüsseln des ausgestellten Tokens mit dem geheimen Token. Dies ist das Beispiel zur Verwendung von DES ist Java http://java-espresso.blogspot.com/2011/09/des-algorithm-code-in-java.html – Sqeezer

+0

Danke das ist genau das, was ich gesucht habe, kann Sie schlagen einige der anderen Algorithmen vor, die sicherer als DES sind und für meine requirment verwendet werden können? – willsteel