Я пытался использовать Apache Shiro в качестве основы безопасности для защиты моего веб-приложения. Выполняя это, я хотел установить URL-адрес успеха, с которого пользователь перенаправляется после успешного входа в систему. По умолчанию клиент получает перенаправление на первоначально запрошенную страницу после успешного входа в систему (упомянутый в API).Не удалось установить URL успеха в Apache Shiro
Мой вопрос, мы можем изменить это поведение по умолчанию и перенаправить пользователя на конкретную страницу успеха при входе в систему?
Из того, что я знаю, мы можем говорить об этом в файле shiro.ini
authc.successUrl = /personalaccountpage.html
где authc является неявный объект предоставляется в Shiro приложений с поддержкой. Но это не похоже на приложение. Пользователь всегда перенаправляется на запрошенный URL.
Я знаю, что это нелогично сказать, что я хочу, чтобы перенаправить пользователя на другую страницу, даже если пользователь запросил конкретную страницу, но я хотел бы понять цель конфигурации, предоставленной нам приведенным ниже:
authc.successUrl
Я использую Apache Shiro 1.2.4 и Tomcat 7 в качестве контейнера для своего веб-приложения.
Вот основные файлы выполнявшие здесь:
shiro.ini файл
# =============================================================================
# Tutorial INI configuration
#
# Usernames/passwords are based on the classic Mel Brooks' film "Spaceballs" :)
# =============================================================================
[main]
# specify login page
authc.loginUrl = /login.jsp
# redirect after successful login
authc.successUrl = /personalaccountpage.html
# name of request parameter with username; if not present filter assumes 'username'
authc.usernameParam = user
# name of request parameter with password; if not present filter assumes 'password'
authc.passwordParam = pass
# does the user wish to be remembered?; if not present filter assumes 'rememberMe'
authc.rememberMeParam = remember
# -----------------------------------------------------------------------------
# Users and their (optional) assigned roles
# username = password, role1, role2, ..., roleN
# -----------------------------------------------------------------------------
[users]
root = secret, admin
guest = guest, guest
presidentskroob = 12345, president
darkhelmet = ludicrousspeed, darklord, schwartz
lonestarr = vespa, goodguy, schwartz
# -----------------------------------------------------------------------------
# Roles with assigned permissions
# roleName = perm1, perm2, ..., permN
# -----------------------------------------------------------------------------
[roles]
admin = *
schwartz = lightsaber:*
goodguy = winnebago:drive:eagle5
[urls]
/**=authc
web.xml моего веб-приложение
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<display-name>Archetype Created Web Application</display-name>
<listener>
<listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
</listener>
<filter>
<filter-name>ShiroFilter</filter-name>
<filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ShiroFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
</web-app>
login.jsp страницы для мой webapp. Пользователь перенаправляется сюда для входа в систему, когда любой URL просил
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Please Log In</title>
</head>
<body>
<form name="loginform" action="" method="post">
<table align="left" border="0" cellspacing="0" cellpadding="3">
<tr>
<td>Username:</td>
<td><input type="text" name="user" maxlength="30"></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="pass" maxlength="30"></td>
</tr>
<tr>
<td colspan="2" align="left"><input type="checkbox" name="remember"><font size="2">Remember Me</font></td>
</tr>
<tr>
<td colspan="2" align="right"><input type="submit" name="submit" value="Login"></td>
</tr>
</table>
</form>
</body>
</html>
Пожалуйста, дайте мне знать, если я пропустил какие-либо детали.
Где вы разместили файл shiro.ini? – Wouter
Hi @Wouter Мой файл shiro.ini находится в WEB-INF – karanaug88