Interceptador de login: ShiroInterceptorFilter . Herdado de FormAuthenticationFilter
Obtenha o caminho da solicitação antes de ser interceptado:
WebUtils.getSavedRequest(solicitação);
String url = salvoRequest.getRequestUrl();
classe pública ShiroInterceptorFilter estende FormAuthenticationFilter { //Solicitação de login padrão do PC private String loginUrl; //Usado para armazenar o caminho da solicitação que precisa ser interceptado static List<String> interceptorUrlList = new ArrayList<>(); //Bloco de código estático, carrega o caminho da solicitação que precisa ser interceptado [Neste exemplo , a solicitação do terminal móvel é armazenada path] static{ interceptorUrlList.add("/gerenciar/index"); interceptorUrlList.add("/sistema"); ...... } //Método de construção do interceptor public ShiroInterceptorFilter() { } public ShiroInterceptorFilter(String loginUrl) { this.loginUrl = loginUrl; } //obter/definir método de parâmetros @Sobrepor string pública getLoginUrl() { retornar loginUrl; } @Sobrepor public void setLoginUrl(String loginUrl) { this.loginUrl = loginUrl; } //Método reescrito para ir para a página de login @Sobrepor protegido void redireccionamentoToLogin(solicitação ServletRequest, resposta ServletResponse) lança IOException { //Obtém o caminho da solicitação atual no cabeçalho da solicitação HttpServletRequest httpServletRequest = (HttpServletRequest) solicitação; String url = httpServletRequest.getServletPath(); //Identificador usado para julgar se precisa ser interceptado, não precisa ser interceptado por padrão Sinalizador booleano = falso; //Julga se a solicitação atual é o caminho do terminal móvel for (String mobileUrl: interceptorUrlList) { if(url.contains(mobileUrl)){ bandeira = verdadeiro; } } //De acordo com a solicitação interceptada, salte para diferentes caminhos de solicitação de login se(sinalizador){ //Interface do terminal móvel, interceptação salta para login do terminal móvel WebUtils.issueRedirect(solicitação, resposta, "/ddLogin"); }outro{ //Lado do PC, vá para o login do lado do PC WebUtils.issueRedirect(solicitação, resposta, loginUrl); } } }