Spring Security
我使用and创建了一个小而简单的 webapp SpringMVC
,我正在尝试将其转换为多租户应用程序。
我想要的概念是重用我拥有的实际 JSP 并根据我根据 URL 的路径确定的配置更改它们的内容。
示例:
客户 #1 (abc) - URL: http: //mydomain.com/abc/login.html
客户 #2 (xyz) - URL: http: //mydomain.com/xyz/login.html
因此,“租户”的名称是页面路径的前缀。
我修改我的控制器是这样的:
@Controller
@RequestMapping("/{customer:[a-zA-Z0-9]+}/login.htm")
public class LoginController
{
private static final Logger logger = Logger.getLogger(LoginController.class);
@RequestMapping
@ReadOnlyRequest
public String login(@PathVariable("customer") String customer, HttpServletRequest request)
{
// Do some 'customer' related actions here
return "login"; // Map to the 'login.jsp' view
}
}
我的视图解析器配置是:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
到目前为止,我有以下form-login
配置:
<form-login
login-page="/login.htm"
authentication-failure-url="/login.htm?error=true"
login-processing-url="/login_process"
default-target-url="/index.jsp"
always-use-default-target="true"
/>
但我不知道如何转换它以支持我的更改。
有没有办法将其转换为:
<form-login
login-page="/${customer}/login.htm"
authentication-failure-url="/${customer}/login.htm?error=true"
login-processing-url="/${customer}/login_process"
default-target-url="/index.jsp"
always-use-default-target="true"
/>