Java Liferay:按屏幕名称进行身份验证
liferay的接口com.liferay.portal.security.auth.Authenticator包含不同类型的身份验证的不同原型。为了了解每种身份验证的作用,我实现了一个包含此类的测试挂钩:Java Liferay:按屏幕名称进行身份验证,java,authentication,liferay,Java,Authentication,Liferay,liferay的接口com.liferay.portal.security.auth.Authenticator包含不同类型的身份验证的不同原型。为了了解每种身份验证的作用,我实现了一个包含此类的测试挂钩: public class Test-hook implements Authenticator { @Override public int authenticateByEmailAddress(long arg0, String arg1, String arg2,Map<
public class Test-hook implements Authenticator {
@Override
public int authenticateByEmailAddress(long arg0, String arg1, String arg2,Map<String, String[]> arg3, Map<String, String[]> arg4) throws AuthException {
System.out.println("successfull by email address authenticate ");
return SUCCESS;
}
@Override
public int authenticateByScreenName(long arg0, String arg1, String arg2,
Map<String, String[]> arg3, Map<String, String[]> arg4)
throws AuthException {
// TODO Auto-generated method stub
System.out.println("successfull by screen name authenticate");
}
@Override
public int authenticateByUserId(long arg0, long arg1, String arg2,
Map<String, String[]> arg3, Map<String, String[]> arg4)
throws AuthException {
// TODO Auto-generated method stub
System.out.println("successfull by user id authenticate");
return SUCCESS;
}
}
公共类测试挂钩实现验证器{
@凌驾
public int authenticateByMailAddress(长arg0、字符串arg1、字符串arg2、映射arg3、映射arg4)引发AuthException{
System.out.println(“通过电子邮件地址验证成功”);
回归成功;
}
@凌驾
public int authenticateByScreenName(长arg0、字符串arg1、字符串arg2、,
地图arg3、地图arg4)
抛出AuthException{
//TODO自动生成的方法存根
System.out.println(“通过屏幕名称验证成功”);
}
@凌驾
public int authenticateByUserId(长arg0、长arg1、字符串arg2、,
地图arg3、地图arg4)
抛出AuthException{
//TODO自动生成的方法存根
System.out.println(“通过用户id验证成功”);
回归成功;
}
}
因此,如果我通过portlet登录正确,将自动调用函数“authenticateByEmailAddress”,并在控制台中显示“successfull by email address authenticate”
我的问题是何时调用authenticateByScreenName和authenticateByUserId函数?这仅仅意味着我们如何在Liferay中通过屏幕名和用户ID进行身份验证?我不确定这是否是解决方案,或者它们是否相关。但是, 在
portlet-ext.properties
中将company.security.auth.type
设置为屏幕名称可能会解决此问题
#
# The portal can authenticate users based on their email address, screen
# name, or user id.
#
#company.security.auth.type=emailAddress
company.security.auth.type=screenName
company.security.auth.type=userId