这是一个一般性的快速问题。由于我的母语不是英语,我在谷歌上搜索我需要的东西时遇到了困难。
情况:我创建了一个spring应用程序,我可以通过localhost:8080“它使用了SpringSecurity,在登录后显示了我放在main/resources/static文件夹中的index.html。
我想做的是:我想主页是和自动转移到“localhost:8080/home“或”localhost:8080/index“而不仅仅是”localhost:8080"
我的控制器类:
package com.lukas.ramonas.cms.DAO;
import com.lukas.ramonas.cms.Model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.Collection;
@Controller // This means that this class is a Controller
@RequestMapping(path="/home") // This means URL's start with /home (after Application path)
public class MainController {
// This means to get the bean called user_tableRepository
// Which is auto-generated by Spring, we will use it to handle the data
// @GetMapping("/index")
// public String index() {
// return "index";
// }
@Autowired
private UserRepository UserRepository;
@PostMapping(path="/add") // Map ONLY POST Requests
public @ResponseBody String addNewUser (
@RequestParam String name,
@RequestParam String username,
@RequestParam String password,
@RequestParam String email,
@RequestParam Collection roles,
@RequestParam Boolean confirmed) {
// @ResponseBody means the returned String is the response, not a view name
// @RequestParam means it is a parameter from the GET or POST request
User n = new User();
n.setName(name);
n.setUsername(username);
n.setPassword(password);
n.setEmail(email);
n.setRole(roles);
n.setConfirmed(confirmed);
UserRepository.save(n);
return "Saved";
}
@GetMapping(path="/all")
public @ResponseBody Iterable<User> getAllUsers() {
// This returns a JSON or XML with the users
return UserRepository.findAll();
}
}
如果需要任何额外的信息或代码,我很乐意提供。
2条答案
按热度按时间vkc1a9a21#
@RequestMapping
接受多个Map,而不仅仅是一个Map:您可以这样添加:
8iwquhpp2#
默认情况下,Spring Security 会将您返回到您尝试访问的原始禁止url。
例如,如果你试图访问
http://locahost:8080/foobar
如果你是未经认证的,你会得到302 Redirect
至/login
,当成功通过身份验证时,您将获得302 Redirect
回到/foobar
.如果你想改变这种行为,你可以用几种方法。
你可以设置
successForwardUrl
在你的HttpSecurity
配置:或者可以实现接口
AuthenticationSuccessHandler
```http.formLogin()
.successHandler(customAuthenticationSuccessHandler)
public class CustomAuthenticationSuccessHandler implements AuthenticationSuccessHandler {
}