我尝试合并WSSE身份验证。我有一个symfony在后面,和一个应用Ionic - AngularJS在前面。我遵循了有关WSSE的食谱和这些教程:
http://obtao.com/blog/2013/05/create-rest-api-in-a-symfony-application/http://obtao.com/blog/2013/06/configure-wsse-on-symfony-with-fosrestbundle/和
http://obtao.com/blog/2013/09/how-to-use-wsse-in-android-app/我安装WSSE好,我可以哈希我的密码在我的应用程序与此代码:
authentication.hashPassword = function(salt, clearPassword) {
var digest = "";
console.log('==== STARTING HASHING PASSWORD ====');
var salted = null;
if (!salt || salt == "") {
salted = clearPassword;
} else {
salted = clearPassword + "{" + salt + "}";
}
digest = CryptoJS.SHA512(salted);
for (var i=1; i<5000; i++) {
digest = CryptoJS.SHA512(digest.toString(CryptoJS.enc.Latin1)+salted);
}
digest = digest.toString(CryptoJS.enc.Base64);
console.log('==== ENDING HASHING PASSWORD ====');
console.log(digest);
return digest;
};
但我想用我的哈希密码生成头(上一个教程是用java编码的,我是java新手)
如果我发布我的哈希密码,是否可以比较两个哈希密码?
你知道如何创建一个header(或Token)吗?
谢谢你的回答
您的应用程序似乎是基于Ionic框架。在教程中提到的"Android应用程序"之后,我们也测试了ionic。
参见https://github.com/wallabag/ionic-app (crypto是"手工制作的",但它会帮助你在ionic/angularjs的头部分)
在app.js:
$http.defaults.headers.common['x-wsse'] = function() {
return wsse.getHeaderValue(username, encryptedPassword);
};
$http.defaults.headers.common.Authorization = 'profile=UsernameToken';