运行在Geronimo中的Java servlet的简单身份验证
我现在正在研究如何向Javaservlet添加身份验证。我发现了一个示例,展示了如何对servlet使用身份验证,但这是一个Tomcat实现。我们的生产环境使用Geronimo。如何在Geronimo中完成同样的事情运行在Geronimo中的Java servlet的简单身份验证,java,tomcat,authentication,servlets,geronimo,Java,Tomcat,Authentication,Servlets,Geronimo,我现在正在研究如何向Javaservlet添加身份验证。我发现了一个示例,展示了如何对servlet使用身份验证,但这是一个Tomcat实现。我们的生产环境使用Geronimo。如何在Geronimo中完成同样的事情 抱歉,前几天刚刚学习了Geronimo的基础知识,但还没有在较高的层次上找到如何要求对Geronimo中运行的servlet进行身份验证。使用安全过滤器,它们是在servlet中实现身份验证的最佳方法, 因为每个链接的简单身份验证都是这样的(在web.xml中) 这里是chain.
抱歉,前几天刚刚学习了Geronimo的基础知识,但还没有在较高的层次上找到如何要求对Geronimo中运行的servlet进行身份验证。使用安全过滤器,它们是在servlet中实现身份验证的最佳方法, 因为每个链接的简单身份验证都是这样的(在web.xml中) 这里是chain.doFilter(请求、响应);
让我们的流程按原样进行;否则,用户将被重定向到相应的jsp。您需要在
geronimo web.xml
中配置它。web.xml
与您提供的示例类似
下面是一个显示大部分内容的资源:
在本例中,用户和密码位于数据库中
但是可以在geronimoweb.xml
()
已编辑 此链接还提供有关管理
用户/组/领域的信息
您可以使用来方便您的工作。
pac4j支持多种身份验证机制(表单、Facebook、CAS…)
您的问题似乎表明您正在寻找一些简单的机制,如表单或http基本身份验证。在这种情况下,您只需要实现UsernamePasswordAuthenticator
接口,并依赖于包含用户名/密码对的文件。请记住,在网上提交凭据时始终使用HTTPS,以保存机密性和完整性
请看一下,以了解pac4j如何集成到j2e上下文中。您是否正在寻找Geronimo支持的任何基于J2EE的身份验证?对于初学者,我想做一个简单的用户文件,如我发布的示例中所述。在该示例中,他们建议将用户添加到tomcat-users.xml文件中。这是我想要开始工作的伟大的第一步(至少对我来说,因为我没有这个原型的其他身份验证方法)。除了设置(tomcat用户文件)之外,这将是相同的。@LeosLiterak-那么我在Geronimo中的用户和密码列表在哪里呢?问题就在这里——我不确定我在Geronimo中是如何做到这一点的。您可以创建一个数据库并将用户表放在存储用户名和密码的位置。因此,您可以通过对表进行用户名和密码检查来查询表。这是非常常见的方式(没有Geronimo耦合),密码存储在哪里?另外,这是否会以纯文本形式发送用户名,对吗?如果是这样,你将如何保护流量并对其进行加密?对于用户名安全-1。使用POST协议,用户名不会被发送到URL中。2.发送前对用户名进行加密(通过javascript)并发送加密用户名,从数据库中获取加密版本并进行比较。对于密码-1。您必须在数据库中存储加密密码,显然您将从数据库中获取密码并进行比较。(这是一个让您了解流程的示例,否则一切都可以在doFilter()中完成,就像在java中一样,我们作为开发人员每天都做这些事情。:))所有servlet容器都为您提供基本的和基于表单的身份验证实现@Edubliguenti已经为您提供了geronimo的相关文档链接。大多数情况下,这将很好地满足您的目的——代码行数为零。
<filter>
<filter-name>loginFilter</filter-name>
<filter-class>com.nawab.filters.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>loginFilter</filter-name>
<url-pattern>/* </url-pattern>
</filter-mapping>
<filter>
<filter-name>loginFilter</filter-name>
<filter-class>com.nawab.filters.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>loginFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
public class LoginFilter implements Filter {
public void init(FilterConfig arg0) throws ServletException {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletResponse httpRes = (HttpServletResponse) response;
String ipAddress = request.getRemoteAddr();
// your ipAddress
String yourIpAddress = "192.168.1.xxx";
// name you want to authenticate
String name = "nawab";
// ip address validation
if (!request.getParameter(ipAddress).equals(yourIpAddress)) {
httpRes.sendRedirect("wrongIp.jsp");
}
if (!request.getParameter("fname").equals(name)) {
httpRes.sendRedirect("index.jsp");
}
chain.doFilter(request, response);
}
public void destroy() {
}}