我正在尝试为Weblogic 12c上部署的servlet配置基本身份验证。这是我的web.xml

<security-constraint>
 <web-resource-collection>
     <web-resource-name>TestServlets</web-resource-name>
     <url-pattern>/ReasonServlet</url-pattern>
 </web-resource-collection>
 <auth-constraint>
    <role-name>TestServiceRole</role-name>
 </auth-constraint>
</security-constraint>

<login-config>
 <auth-method>BASIC</auth-method>
 <realm-name>default</realm-name>
</login-config>

<security-role>
 <role-name>TestServiceRole</role-name>
</security-role>

<servlet>
    <servlet-name>ReasonServlet</servlet-name>
    <servlet-class>com.test.go.track.servlets.ReasonServlet</servlet-class>
  </servlet>
<servlet>
<servlet-mapping>
    <servlet-name>ReasonServlet</servlet-name>
    <url-pattern>/ReasonServlet</url-pattern>
</servlet-mapping>


 

这是我的weblogic.xml:

<security-role-assignment>
  <role-name>TestServiceRole</role-name>
  <principal-name>TestUsers</principal-name>
</security-role-assignment>


我还做了以下工作:


创建了一个用户-测试,创建了一个组-TestUsers
将用户测试添加到TestUsers
创建了一个角色-TestServiceRole,添加了TestUsers组作为角色条件。
进行了这些更改和应用程序部署后,重新启动了weblogic。


现在,当我尝试通过浏览器访问我的servlet时,没有任何弹出窗口可输入http userid / password。我可以访问servlet,就像没有配置安全性一样。

但是,当我通过SoapUI / java客户端测试servlet并在HTTP标头(授权:基本)中显式设置一些错误的http凭据(base64编码的userid:wrongpassword)时,weblogic会拒绝该请求,并显示401授权要求错误。

当请求中没有http授权标头时,将授予访问权限。

Weblogic中是否还缺少其他配置?
我希望基本身份验证检查始终执行,无论是否存在http auth标头。

请帮忙!!最近2天都在努力解决此问题。

谢谢!

最佳答案

从我这方面来看,这确实是一个部署问题。.我原始帖子中的配置很好。感谢那些回答了我的问题的人!

10-06 12:42
查看更多