【问题标题】:How to implement the url authentication in java so that only authorized user can access it如何在java中实现url认证,只有授权用户才能访问
【发布时间】:2013-07-08 11:06:46
【问题描述】:

如何保护我的网址(例如:-youtube.com),以便只有有权访问此网址的人才能对其进行解密并获得访问权限。未经授权的人应该收到“访问被拒绝”的消息。

                   **I need no login page**

如果我将链接提供给某个用户,那么该用户只能点击该链接并使用它,其他用户无法访问该链接。

【问题讨论】:

  • 你有没有尝试过?考虑使用令牌和带有令牌的用户映射来访问 url。
  • 我都试过了,如果你能给我演示一下,我会很感激
  • 欢迎来到 StackOverflow。你能分享你已经尝试过的吗? “只有获得授权的用户才能访问该网址”是什么意思?如何区分授权用户和非授权用户?
  • 这就是我想要的。如何仅通过 url 验证过程对用户进行身份验证。不提示登录页面。
  • 你根本做不到。知道链接的每个人都可以看到它。而其他人没有 URL,因此您无需执行任何操作。我的意思是,如果未经授权的人没有 URL,他们将如何首先访问您的网站?如果我将 URL 转发给某人会发生什么?

标签: java jsp servlets


【解决方案1】:

由于您使用的是 servlet 容器,因此您可能想要使用 ServletFilter。

以下是一些入门指南:

  • 您需要在 web.xml 中声明 servlet 过滤器才能应用它。 (过滤器和过滤器映射标签)
  • 您(当然)需要一个过滤器的实现来做出您的选择
  • 如果请求未获得授权,请将其重定向到错误页面,或发送 http-not-authorized。

这是过滤器的 javadoc: http://docs.oracle.com/javaee/5/api/javax/servlet/Filter.html

public class ExampleFilter extends SomeBaseClass {
   public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
     if (aRequest instanceof HttpServletRequest) {
       if (!isAuthorizedRequest(aRequest)) {
         ((HttpServletResponse)aResponse).setStatus(HttpServletResponse.SC_FORBIDDEN); 
         // Maybe write a "you are not allowed" message?
         return;
       }
     }
     chain.doFilter(aRequest, aResponse);
   }
   public boolean isAuthorizedRequest(ServletRequest rq) {
     // ...
   }
}

【讨论】:

  • 您能否详细说明Filter 如何帮助解决原始海报问题?
猜你喜欢
  • 1970-01-01
  • 2019-10-07
  • 1970-01-01
  • 2016-10-31
  • 2019-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-12
相关资源
最近更新 更多