我是 Liferay 的新手。我想使用 Liferay 作为我的后端,并且我有几个 Web 服务可以与之交互。我在哪里可以找到文档(或一些示例)来提供用于身份验证 liferay 用户的 Web 服务?这只是入门和熟悉仪器。然后我必须在这个 Web 服务中集成一个单点登录系统。提前致谢
2 回答
我相信开发者指南的第 11 章和第 12 章可能包含一些有价值的信息。关于登录——正如你已经提到的 SSO——我建议对一个公共后端进行身份验证,而不是直接对 Liferay 进行身份验证。Liferay 支持多种开箱即用的 SSO 系统。Liferay 的 Web 服务是通过 ServiceBuilder 生成的(也请阅读该章),您会通过它们的名称识别它们 - 例如,UserService 是处理用户管理的远程服务(UserLocalService 是远程不可用的,servicebuilder 文档将教您有关这些名称的各种后缀,如 *Util、*Impl 等)
此外,对于像您这样的问题,我永远无法完全确定哪个 Web 服务使用什么基础设施:如果您在 Liferay 中编写使用外部 Web 服务的 portlet,这与您编写将某些操作委托给 Liferay 的 Web 服务的 Web 服务是不同的故事。两者都是可能的(当然),但要求不同的方法:您必须使 Liferay 的服务可用(通过配置,默认情况下它们仅对 127.0.0.1 可用),但您可以使用任何您喜欢的 WebService你的插件,没有 Liferay 有什么可说的。
只有当你想在市场上发布你的插件时,你才需要声明你想连接到哪里——因此在这种情况下你必须阅读有关 PACL 的信息。
您可以找到 Web 服务的分步教程。 http://www.liferaysavvy.com/2014/05/sumption-liferay-json-web-services.html
您可以在 Java 脚本的帮助下调用 Web 服务,如下所示。
<script>
$(document).on('ready',function(){
var username ="test@liferay.com";
var password ="test";
function make_base_auth(user, password) {
var tok = user + ':' + password;
var hash = btoa(tok);
return "Basic " + hash;
}
$.ajax({
url: 'http://localhost:8080/api/jsonws/CustomJsonWebservices-portlet.employee/get-employee/emplyee-id/1',
dataType: "json",
type: "get",
success: function(data){
alert('Employee Data with Id 1 is');
alert(data.emplyeeName);
alert(data.employeeDesignation);
},
beforeSend: function(xhr){
xhr.setRequestHeader('Authorization',make_base_auth(username, password));
},
complete: function(){
},
error: function(){
}
});
});
</script>
您可以在下面找到 Web 服务的完整代码。 https://drive.google.com/file/d/0B9B1NsG0lyx6Q2dlUVp6LU5fX0E/view?usp=sharing