将 URL 变量传递给安全 spring 表单
Passing URL variables to the security spring form
我有一个应用程序,它应该使用从 URL.
中获取的变量预填充登录表单
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/resources/**").permitAll()
.antMatchers(HttpMethod.GET, "/fornecedor/lista").hasRole("ADMIN")
.antMatchers(HttpMethod.GET, "/fornecedor/cadastrarFornecedor").hasRole("ADMIN")
.antMatchers(HttpMethod.POST, "/fornecedor/cadastrarFornecedor").hasRole("ADMIN")
.and()
.formLogin()
.loginPage("/login").permitAll()
.and()
.rememberMe()
.and()
.logout()
.logoutSuccessUrl("/login?logout")
.permitAll()
.and()
.rememberMe()
.userDetailsService(userDetailsService);
}
我正在获取 localhost:8080/login,当然表单是空的所以,我需要能够从他的标识符中获取用户 URL: localhost:8080/ login?user=nome&password=12345 并将此用户传递到我的自定义登录表单:
但目前我无法获取-如何在代码中获取此路径变量,以及在哪里可以获取它。
为登录页面编写控制器,读取 URL 参数并将该数据提供给视图。
@Controller
public class LoginController {
private static final String REQUEST_URL = "/login";
private static final String VIEW = "login";
@RequestMapping(value = REQUEST_URL, method = RequestMethod.GET)
public String setupLogin(@RequestParam("user") String user, @RequestParam("password") String password, HttpServletRequest request) {
// adapt 'j_username' and 'j_password' depending on the names used in your login page
request.setAttribute("j_username", user);
request.setAttribute("j_password", password);
return VIEW;
}
}
我有一个应用程序,它应该使用从 URL.
中获取的变量预填充登录表单protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/resources/**").permitAll()
.antMatchers(HttpMethod.GET, "/fornecedor/lista").hasRole("ADMIN")
.antMatchers(HttpMethod.GET, "/fornecedor/cadastrarFornecedor").hasRole("ADMIN")
.antMatchers(HttpMethod.POST, "/fornecedor/cadastrarFornecedor").hasRole("ADMIN")
.and()
.formLogin()
.loginPage("/login").permitAll()
.and()
.rememberMe()
.and()
.logout()
.logoutSuccessUrl("/login?logout")
.permitAll()
.and()
.rememberMe()
.userDetailsService(userDetailsService);
}
我正在获取 localhost:8080/login,当然表单是空的所以,我需要能够从他的标识符中获取用户 URL: localhost:8080/ login?user=nome&password=12345 并将此用户传递到我的自定义登录表单:
但目前我无法获取-如何在代码中获取此路径变量,以及在哪里可以获取它。
为登录页面编写控制器,读取 URL 参数并将该数据提供给视图。
@Controller
public class LoginController {
private static final String REQUEST_URL = "/login";
private static final String VIEW = "login";
@RequestMapping(value = REQUEST_URL, method = RequestMethod.GET)
public String setupLogin(@RequestParam("user") String user, @RequestParam("password") String password, HttpServletRequest request) {
// adapt 'j_username' and 'j_password' depending on the names used in your login page
request.setAttribute("j_username", user);
request.setAttribute("j_password", password);
return VIEW;
}
}