zoukankan      html  css  js  c++  java
  • liferay中jsonws的认证方法

    参考:http://www.huqiwen.com/2016/08/11/liferay-jsonws-authorization/

    Liferay默认提供两种接口,基于axis的webserivce,访问地址为:http:/xxx/api/axis

    基于jsonws的访问地址为:http://xxx/api/jsonws。

    但是这两种接口在外部分访问的时候都是需要认证的,本篇文章介绍如何对jsonws的接口进行认证访问。

    基于Java的认证

    示意代码如下:

    String pathUrl = "http://localhost:8080/api/jsonws/user/get-user-by-id/user-id/20198";
    URL url = new URL(pathUrl);
    HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
    String userName = "test@liferay.com";
    String password = "test";
    String token = userName + ":" + password;
    String authorString = "Basic " + Base64.encodeBase64String(token.getBytes());
    httpConn.setRequestProperty("Authorization",authorString);

    上面的重点为:在访问的时候为http头信息,也就是在request header里面添加一个名称为Authorization的信息,内容为Basic+空格+base64编码(用户名+:+密码),这样的结构。

    其中将用户名和密码以冒号连接起来,然后进行base64编码,JDK中对于base64的编码方法,不同的JDK(6、7、8)有不同的方法,我上面的示意代码是采用的apache codec的库,这里只要是进行base64编码即可,采用哪个库都无所谓。

    基于javascript的认证

    $(document).ready(function(){
        var username ="test@liferay.com";
        var password ="test";
        function auth(user, password) {
        var tok = user + ':' + password;
        var hash = btoa(tok);
        return "Basic " + hash;
    }
    $.ajax({
       url: 'http://localhost:8080/api/jsonws/user/get-user-by-id/user-id/20198',
       dataType: "json",
       type: "get",
       success: function(data){
           alert(data);          
       },
       beforeSend: function(xhr){
           xhr.setRequestHeader('Authorization',auth(username, password));
       },
       complete: function(){
       },
       error: function(){
       }
     });
     });

    上面的代码是示意,实际中可以根据自己的情况进行删减,方法本质上和java的代码没有本质的区别。都是在request header里面添加一个名为Authorization的头信息,其中btoa方法是JS的内置函数,进行base64编码的。

  • 相关阅读:
    980不同路径III
    输入函数
    IDEA更新maven依赖包
    join()函数
    方差偏差困境
    np.bincount()函数
    72编辑距离
    741摘樱桃
    523连续的子数组和
    1306跳跃游戏III
  • 原文地址:https://www.cnblogs.com/show58/p/13802138.html
Copyright © 2011-2022 走看看