0

サーバー上に、さまざまな役割とユーザーを持ついくつかのページがあり、基本認証が構成されています。

最初のページに正常にログインし、別のマイ ページ (別のタブ) を開こうとすると、次のエラーが表示されます: HTTP ステータス 403 - 要求されたリソースへのアクセスが拒否されました。その別のページを正常に開くには、ブラウザを閉じて再度開く必要があります。

予想される動作: 別のページを新しいタブで開くと、新しいページのログインとパスワードを入力するための新しいログイン ダイアログが表示されます。

これらは私の構成です:

tomcat-users.xml:

  <role rolename="Role1"/>
  <role rolename="Role2"/>

  <user username="user1" password="pass1" roles="Role1"/>
  <user username="user2" password="pass2" roles="Role2"/>

web.xml の一部:

 <security-constraint>
      <web-resource-collection>
       <web-resource-name>Info Page</web-resource-name>
       <url-pattern>/DeploymentInfoService</url-pattern>
      </web-resource-collection>
      <auth-constraint>
       <role-name>Role1</role-name>
      </auth-constraint>
     </security-constraint>

     <security-constraint>
      <web-resource-collection>
       <web-resource-name>RSS Feeds</web-resource-name>
       <url-pattern>/RssFeedService</url-pattern>
      </web-resource-collection>
      <auth-constraint>
       <role-name>Role2</role-name>
      </auth-constraint>
     </security-constraint>

     <security-role>
      <role-name>Role1</role-name>
     </security-role>

     <security-role>
      <role-name>Role2</role-name>
     </security-role>

     <login-config>
      <auth-method>BASIC</auth-method>
      <realm-name>OnJava Application</realm-name>
     </login-config>
4

1 に答える 1

1

各ページを 1 つの役割に制限し、それぞれ異なる役割を持つ 2 人のユーザーがいます。
したがって、user1 は DeploymentInfoService ページにのみアクセスでき、user2 は RssFeedService ページにのみアクセスできます。それらのいずれかが別のページにアクセスできるようにするには、別のロールを付与するか、ページでさらに多くのロールを許可する必要があります。

于 2013-01-29T11:57:46.727 に答える