我们经常使用ATG的发电机管理来测试对各种其他组件所做的更改。有没有办法禁用登录才能打开Dynamo Administration?我们多次观察到它多次询问凭据。任何猜测为什么它这样做以及如何避免这种情况?
答案 0 :(得分:5)
经过一番挖掘后,我找到了更好的方法。禁用身份验证的更简单方法是禁用AuthenticationServlet中的身份验证。
要获得此DYNAMO_HOME/localconfig/atg/dynamo/servlet/adminpipeline/AuthenticationServlet.properties
文件,必须包含以下内容。
$class=atg.servlet.pipeline.BasicAuthenticationPipelineServlet
enabled=false
基本身份验证管道Servlet是将身份验证重定向到其他组件的类,通过更改enabled = false,我们可以禁用身份验证。将其更改为true将启用以前的身份验证。
请点击此链接获取更多信息:Disable DynAdmin authentication of Oracle Commerce
答案 1 :(得分:2)
我通过覆盖Authenticator尝试了它,如果配置中的标志“allowPassThroughEnabled”为真,则返回true。
As BasicAuthenticationServlet Pipeline调用Authenticator来验证用户,如果请求带有带有基本身份验证的Authorization标头。
我过度使用了Authenticator组件,添加了一个布尔属性
allowPassThroughEnabled
启用/禁用身份验证。
属性文件和类文件如下所示:
#/atg/dynamo/servlet/adminpipeline/Authenticator.properties
$class=com.myadminpipeline.CustomUserAuthorityAuthenticator
allowPassThroughEnabled=true
和班级:
package com.myadminpipeline;
import atg.servlet.pipeline.UserAuthorityAuthenticator;
public class CustomUserAuthorityAuthenticator extends
UserAuthorityAuthenticator {
private boolean allowPassThroughEnabled;
public boolean isAllowPassThroughEnabled() {
return allowPassThroughEnabled;
}
public void setAllowPassThroughEnabled(boolean allowPassThroughEnabled) {
this.allowPassThroughEnabled = allowPassThroughEnabled;
}
@Override
public boolean authenticate(String pUserId, String pPassword) {
if (isAllowPassThroughEnabled()){
return true;
}
return super.authenticate(pUserId, pPassword);
}
}
它为我做的工作。您也可以根据您的要求将此标志切换为true或false。
希望这有帮助!
答案 2 :(得分:1)
到目前为止,我无法找到一种方法来完成所需的操作,但我找到了一种解决方法,通过启用lazyAuthentication来避免频繁登录。通过启用ATG的lazyAuthentication功能,每个会话只需要登录一次。如果没有此功能,则会在每隔几分钟不活动后询问登录信息。要启用此功能,请执行以下操作...
$class=atg.servlet.pipeline.UserAuthorityAuthenticator $scope=global userAuthority=/atg/dynamo/security/AdminUserAuthority userPath=/atg/dynamo/security/User lazyAthentication=true allowedAccounts=administrators-group repository=/atg/dynamo/security/AdminSqlRepository