6

役割 admin の許可は、システム全体 (管理ページとホームページ) へのアクセスを拒否されています。そこで、ROLE_ADMIN を /main/home インターセプト URL に追加しました。

これはセキュリティ xml です。

<http auto-config="true" use-expressions="true">

<intercept-url pattern="/**" requires-channel="https" />
<intercept-url pattern='/main/home/' access="hasRole('ROLE_USER' 'ROLE_ADMIN')" />
<intercept-url pattern='/admin/admin/**' access="hasRole('ROLE_ADMIN')" />
<intercept-url pattern='/main/user/setter/settingpage' access="hasRole('ROLE_USER')" />
<intercept-url pattern='/main/user/setter/addpage' access="hasRole('ROLE_USER')" />
<intercept-url pattern='/login.jsp' access='IS_AUTHENTICATED_ANONYMOUSLY' /> 

<form-login login-page="/login.jsp" default-target-url="/main/home" authentication-failure-url="/auth/loginfail?error=true"/>

</http>  

しかし、それによりプログラム全体が動作しなくなり、コードをそのまま実行するとエラーが発生します

式 'hasRole('ROLE_USER' 'ROLE_ADMIN')' の解析に失敗しました

システムを削除すると、システムが機能し、すべてのページへのアクセスが拒否されているROLE_ADMINユーザーだけでなく、ユーザーを認証できます。ROLE_ADMINデータベースでロールを設定しましたが、最近まで機能していました。

4

2 に答える 2

0

SpEL: Spring 式言語

access="hasRole('ROLE_USER') and hasRole('ROLE_ADMIN')"

また:

access="hasRole('USER_ADMIN') and hasIpAddress('192.168.1.10')"
于 2016-02-15T03:02:28.933 に答える