我正在尝试开发一个定制的JAAS登录模块,它使用一个令牌并从不同的来源获取用户数据。它应该作为wildfly 8.2.1 final的身份验证领域。我有一个测试servlet,我想在其中进行身份验证,以便检查注入EJB的允许角色。
这个网站的测试:http://www.radcortez.com/custom-principal-and-loginmodule-for-wildfly/事实上,我甚至开始了他的git项目。
因为我只使用令牌,所以不能使用请求。登录(用户名、密码)
启动wildfly登录过程。所以我尝试了这个:
@Inject
private SampleEJB sampleEJB;
...
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String token = request.getParameter("token");
try{
context = new LoginContext("TokenLoginDomain", new TokenCallbackHandler(token));
context.login();
}catch(Exception e){
e.printStackTrace();
}
response.getWriter().println("username=" + exampleEJB.getPrincipalName());
}
我的EJB看起来像这样:
@Stateless
public class SampleEJB {
@Resource
private EJBContext ejbContext;
@RolesAllowed("partner")
public String getPrincipalName() {
return ejbContext.getCallerPrincipal().getName();
}
}
在servlet中没有凭据的情况下,如何启动登录过程,以便用户以wildfly用户的身份登录?
在JavaEE中不能以这种方式进行身份验证。使用给定的代码,只能在LoginContext
实例中对您进行身份验证。
正如您已经发现的请求。登录(用户名、密码)
触发身份验证过程,但仅限于用户名/密码凭据。
在这种情况下,您不仅应该编写自定义LoginMoules(标识存储),还应该编写自定义身份验证机制。身份验证机制是身份验证过程中的控制器,而身份存储是模型。
可以通过WildFly很好地支持的JASPIC SPI添加自定义身份验证机制。
您可以使用一些实用程序代码从应用程序注册一个ServerAuthModule
(SAM),您可以从这里复制这些代码:https://github.com/arjantijms/glassfish-sam-ee-namespaces/tree/master/src/main/java/javax/security/authenticationmechanism
然后实际用代码注册SAM,如下所示:
https://github.com/arjantijms/glassfish-sam-ee-namespaces/blob/master/src/main/java/test/SamAutoRegistrationListener.java
有人可以使用jaas登录模块吗。我在看医生 我想是这些登录模块可以1.与OS用户进行身份验证2.提供该用户的组。 基本上我想通过操作系统进行身份验证。输入用户名和密码 我想用windows进行身份验证 我不想做LDAP认证只做os认证。 对于windows,有华夫饼干库可用。但我无法在使用64位机器时进行身份验证。在32位上运行良好。 对于linux,有jpam,但它不提供组。它只会检查用户名、密
我是WebSphere Liberty概要文件的新手。我正在编写17.0.0.4版本。我试图实现的是为应用程序设置自定义JAAS登录设置。该应用程序在WebSphere8.5上运行良好。 我已经查看了IBM知识中心的许多链接,但得到了JAAS自定义登录的结果,但不是两者一起。在WebSphere 8.5中,我们有层次结构来决定哪个身份验证机制去哪里,但是在Liberty中,如果我设置自定义JAAS
在为EJB远程认证激活自定义登录模块时,还会调用applicationrealm进行身份验证。不幸的是,我不知道为什么。 EJB远程客户端属性: ejb URL: 基于普通standalone.xml的standalone.xml配置(不完整): 服务接口 自定义登录模块
我在服务器端JBoss EAP 6.2.0 SecurityDomain上有一个CustomLogin模块。此自定义登录模块需要三个CallbackHandler:NameCallback(Java Standard)、PasswordCallback(Java Stanstandard)和一个额外的OtpCallaback(由我自己实现,用于一次性密码)。 我现在想通过JSF2.1 web应用程
我创建了一个包含两种登录机制的项目: > < li> 第一个是使用简单登录页面的第一个认证机制(使用函数< code>findUser从数据库中获取用户(如果存在)) 第二种认证机制是JAAS提供的登录机制(j_security_check) 基本上,我试图实现这个目标:当用户成功进行身份验证(在第一个登录页面中)时,他应该能够跳过第二页登录(由JAAS提供),而不必在登录表单中重新输入他的用户名
我需要在wildfly 10上运行一个自定义登录(我真的需要一个自定义实现)模块和客户端证书验证,但该模块本身从未执行。同样的方法也适用于jboss 6。 我的自定义模块: 网状物xml jboss网站。xml 在standalone.xml,包括ssl证书配置: 此外,我的自定义安全域是独立的。xml 甚至更改了默认的安全域 最后,https侦听器 一切似乎都可以,如上所示,但当我试图执行简单的