¿Por qué shiro no autorizadourl no es la página actual, sino la página principal?
1! -- Utilice el nombre de la clase o el nombre de la ruta completa como clave y el nombre de la página de excepción como valor para definir excepciones que requieren un manejo especial --gt
lt property name="exceptionMappings"gt; /p>
lt;propsgt;
lt;prop key=" org.apache.shiro.authz.UnauthorizedException"gt; none_authoritylt;/propgt;
lt;/ propsgt;
lt; p>
lt;/propertygt;
2, web.xml
lt;error-pagegt;
lt;error-codegt;500lt; /error-codegt;
lt;ubicacióngt;/error.jsplt;/ubicacióngt; -pagegt;
Motivo:
Código fuente de Shiro ShiroFilterFactoryBean.java
Vista [java]
copia simple
private void applyUnauthorizedUrlIfNecessary(Filter filter) {
String no autorizadoUrl = getUnauthorizedUrl();
if (StringUtils.hasText(unauthorizedUrl) amp; amp; (filtro instancia de AuthorizationFilter)) {
AuthorizationFilter authzFilter = (AuthorizationFilter) filter;
//solo aplica la URL no autorizada si aún no han configurado una explícitamente:
String existingUnauthorizedUrl = authzFilter.getUnauthorizedUrl ();
if (existingUnauthorizedUrl == null) {
authzFilter.setUnauthorizedUrl(authorizedUrl);
}
Cadena existenteUnauthorizedUrl = authzFilter.
Cadena existenteUnauthorizedUrl = authzFilter.}
}
El filtro definido debe cumplir los requisitos del filtro
instanceof
AuthorizationFilter, solo perms, roles, ssl, rest, port son parte de AuthorizationFilter, y anon, authcBasic, auchc y user son parte de AuthorizationFilter.
Parte de AuthenticationFilter, por lo que la página no saltará después de configurar la URL no autorizada
instanceof
instanceof
AuthorizationFilter.