在 Tomcat 8 中使用基本身份验证时出现错误 403

A. 罗本

大家好,

我按照以下链接中的步骤使用 Tomcat 完成基本身份验证,并成功实现了结果:

http://www.avajava.com/tutorials/lessons/how-do-i-use-basic-authentication-with-tomcat.html?page=1

我随后在我正在处理的现有项目上完成了同样的工作,但不幸的是,当我尝试从浏览器或通过 Java 程序访问 servlet 时收到错误 403(禁止访问指定的资源) . 错误 403 表示用户已通过身份验证但未获得授权。

我对该问题进行了深入研究,但我仍然被困在那里,因此感谢您的帮助。

这是 tomcat-user.xml:

<role rolename="tomee-admin"/>
<role rolename="adapter-role"/>
<user password="tomee" roles="tomee-admin,manager-gui" username="tomee"/>
<user username="adapter" password="adapterpwd" role="adapter-role"/>

她是我的 web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <display-name>sbee-adapter</display-name>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>OZZ-Adapter</web-resource-name>
        <url-pattern>/*</url-pattern>
      </web-resource-collection>
      <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
      </user-data-constraint>
  </security-constraint>  
  <security-constraint>
	<web-resource-collection>
	 <web-resource-name>OZZ-Adapter</web-resource-name>
		<url-pattern>/API</url-pattern>
	</web-resource-collection>
	<auth-constraint>
		<role-name>adapter-role</role-name>
	</auth-constraint>
	</security-constraint>
  <servlet>
    <description></description>
    <servlet-name>IDP</servlet-name>
    <servlet-class>com.xxxx.ozz.adapter.ztee.IDP</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>IDP</servlet-name>
    <url-pattern>/IDP</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>API</display-name>
    <servlet-name>API</servlet-name>
    <servlet-class>com.xxxx.ozz.adapter.ztee.API</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>API</servlet-name>
    <url-pattern>/API</url-pattern>
  </servlet-mapping>
  <login-config>
		<auth-method>BASIC</auth-method>
  </login-config>
</web-app>

我的Java代码:

HttpURLConnection con1 = (HttpURLConnection) urlSBEE_API.openConnection();
                con1.setRequestMethod("POST");
                String basis_encode = Base64.getEncoder().encodeToString(("adapter" + ":" + "adapterpwd").getBytes("UTF-8"));
                con1.setRequestProperty("Authorization", "Basic " + basis_encode);
    responseCode = con1.getResponseCode();
    System.out.println("Response code====== "+responseCode);

responseCode 值为 403。

我确保在 web.xml 中包含

<auth-method>BASIC</auth-method>

正如我在网上看到的很多建议这样做。

另一方面,如果在 java 代码中我输入了错误的用户名和密码,那么我会收到错误 401,这是正确的,因为这意味着用户未通过身份验证。

我清除了浏览器缓存并退休了。还是一样的问题。

问题可能与代理设置有关???

我的windows代理设置如下:使用自动配置脚本,地址:http://proxy:8083/

我也尝试了以下代码:

     Proxy proxy = new Proxy(Proxy.Type.HTTP,
                            new InetSocketAddress("Proxy"),
                                    Integer.parseInt("8083"));
        HttpURLConnection con1 = (HttpURLConnection) urlDistribution.openConnection(proxy);
    con1.setRequestMethod("POST");
    String basis_encode = Base64.getEncoder().encodeToString(("adapter" + ":" + "adapterpwd").getBytes("UTF-8"));
    con1.setRequestProperty("Authorization", "Basic " + basis_encode);
    responseCode = con1.getResponseCode();
   System.out.println("Response code====== "+responseCode);

我尝试在 HttpURLConnection con1 之前包含以下内容:

System.setProperty("http.nonProxyHosts", "<MY_LOCAL_HOST>");

但仍然没有运气。

谢谢!

A. 罗本

解决方案:

我只是在 tomcat-user.xml 中替换:role="adapter-role"

角色=“适配器角色”

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

覆盖Tomcat基本身份验证

来自分类Dev

亚马逊 beanstalk tomcat 基本身份验证

来自分类Dev

使用Jquery Ajax Tomcat使用特殊字符进行基本身份验证

来自分类Dev

使用基本身份验证时出现错误 404

来自分类Dev

iOS 8的基本身份验证失败

来自分类Dev

在Win 8 App中为Stackexchange API使用身份验证代理时出现错误400

来自分类Dev

maven tomcat7部署错误403

来自分类Dev

JDBCRealm中使用带有散列密码的tomcat基本/摘要身份验证的方法?

来自分类Dev

将SSL请求从Apache服务器转发到Tomcat时出现403(禁止)错误

来自分类Dev

Tomcat 8 Manager App上的403访问被拒绝而不提示输入用户名/密码

来自分类Dev

Apache Tomcat 7 CORS筛选器IE8,IE9始终返回403响应

来自分类Dev

使用GZIP配置Tomcat 8

来自分类Dev

使用GZIP配置Tomcat 8

来自分类Dev

阻止Apache将基本身份验证标头转发到反向代理的Tomcat网站

来自分类Dev

在集成前测试阶段使用maven-tomcat7-plugin部署到嵌入式tomcat时发生403错误

来自分类Dev

使用基本身份验证时,PHP JSON错误

来自分类Dev

用户角色是从db中检索到的,但是被具有基本身份验证的@PreAuthorize忽略,我得到HTTP 403

来自分类Dev

停止Tomcat时的Tomcat 8内存泄漏警告

来自分类Dev

Spring Boot具有多个角色的基本http身份验证抛出403禁止错误

来自分类Dev

iOS 8在OAuth 401上显示基本身份验证的弹出窗口

来自分类Dev

Watir-无法通过IE8上的基本身份验证

来自分类Dev

jsp:forward servlet链接Tomcat 8错误

来自分类Dev

如何使用Tomcat 8 + Spring Boot + Maven

来自分类Dev

使用JSP的Tomcat LDAP身份验证

来自分类Dev

403客户端错误:使用麻线上传到Pypi时,身份验证信息无效或不存在

来自分类Dev

Google 身份验证显示禁止 HTTP 403 错误

来自分类Dev

REST服务出现404错误-Jersey / tomcat8

来自分类Dev

403错误页面在运行于Tomcat 7的Web服务中不起作用

来自分类Dev

部署到Tomcat7的Maven(响应403)未正确使用给定的插件

Related 相关文章

  1. 1

    覆盖Tomcat基本身份验证

  2. 2

    亚马逊 beanstalk tomcat 基本身份验证

  3. 3

    使用Jquery Ajax Tomcat使用特殊字符进行基本身份验证

  4. 4

    使用基本身份验证时出现错误 404

  5. 5

    iOS 8的基本身份验证失败

  6. 6

    在Win 8 App中为Stackexchange API使用身份验证代理时出现错误400

  7. 7

    maven tomcat7部署错误403

  8. 8

    JDBCRealm中使用带有散列密码的tomcat基本/摘要身份验证的方法?

  9. 9

    将SSL请求从Apache服务器转发到Tomcat时出现403(禁止)错误

  10. 10

    Tomcat 8 Manager App上的403访问被拒绝而不提示输入用户名/密码

  11. 11

    Apache Tomcat 7 CORS筛选器IE8,IE9始终返回403响应

  12. 12

    使用GZIP配置Tomcat 8

  13. 13

    使用GZIP配置Tomcat 8

  14. 14

    阻止Apache将基本身份验证标头转发到反向代理的Tomcat网站

  15. 15

    在集成前测试阶段使用maven-tomcat7-plugin部署到嵌入式tomcat时发生403错误

  16. 16

    使用基本身份验证时,PHP JSON错误

  17. 17

    用户角色是从db中检索到的,但是被具有基本身份验证的@PreAuthorize忽略,我得到HTTP 403

  18. 18

    停止Tomcat时的Tomcat 8内存泄漏警告

  19. 19

    Spring Boot具有多个角色的基本http身份验证抛出403禁止错误

  20. 20

    iOS 8在OAuth 401上显示基本身份验证的弹出窗口

  21. 21

    Watir-无法通过IE8上的基本身份验证

  22. 22

    jsp:forward servlet链接Tomcat 8错误

  23. 23

    如何使用Tomcat 8 + Spring Boot + Maven

  24. 24

    使用JSP的Tomcat LDAP身份验证

  25. 25

    403客户端错误:使用麻线上传到Pypi时,身份验证信息无效或不存在

  26. 26

    Google 身份验证显示禁止 HTTP 403 错误

  27. 27

    REST服务出现404错误-Jersey / tomcat8

  28. 28

    403错误页面在运行于Tomcat 7的Web服务中不起作用

  29. 29

    部署到Tomcat7的Maven(响应403)未正确使用给定的插件

热门标签

归档