当前位置: 首页 > 知识库问答 >
问题:

如何从Spring Boot重定向/向前转角页面?

奚飞星
2023-03-14

或者,如果有其他方法来完成这项任务?

AuthenticationController.Java

package sgsits.cse.dis.user.controller;

@CrossOrigin(origins = "*") // enables cross origin request
@RestController
@RequestMapping(value = "/dis")
@Api(value = "Authentication Resource")
public class AuthenticationController {

@Autowired
StudentRepository studRepo;
@Autowired
StaffRepository staffRepo;
@Autowired
EmailController email;

String pattern = "MM-dd-yyyy";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);

@ApiOperation(value = "login", response = Object.class, httpMethod = "POST", produces = "application/json")
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login(@RequestBody Authentication auth, HttpServletResponse httpServletResponse) {
    Optional<StaffProfile> staff = staffRepo.findByEmail(auth.getUsername());
    if (staff.isPresent()) {
        String md5_pass = MD5.getHash(auth.getPassword());
        if (staff.get().getPassword().equals(md5_pass)) {
            // set session
            // update last login

            return "forward:/localhost:4200/staff";
        } else

            return "You have entered incorrect password";
    } else {
        Optional<StudentProfile> student = studRepo.findByEnrollmentId(auth.getUsername());
        if (student.isPresent()) {
            String md5_pass = MD5.getHash(auth.getPassword());
            if (student.get().getPassword().equals(md5_pass)) {
                // set session
                // update last login

              httpServletResponse.setHeader("Location", "http://localhost:4200/reset-password");
              httpServletResponse.setStatus(302);
               return "redirect:localhost:4200/student";

            } else
                return "You have entered incorrect password";
        } else {
            return "You are not registered with the system. Please signup first";
        }
    }
  }
}

共有1个答案

沈长恨
2023-03-14

不要向控制器添加@crossorigin(corigins=“*”)注释。

假设您的api运行在8080上,angular代码运行在4200上。如果属实;

创建一个名为proxy.conf.json的文件

{
"/api/": {
    "target": "http://localhost:8080/",
    "secure": false,
    "changeOrigin": true
}
 类似资料:
  • 我有一个带有登录表单的jsp页面,我使用的是servlet,如果用户名和密码正确,servlet会将用户重定向到另一个页面,否则它会再次将用户重定向到登录页面 下面是servlet

  • 问题内容: 是否可以设置基本的HTML页面以在加载时重定向到另一个页面? 问题答案: 尝试使用: 注意:将其放在头部。 此外,对于较旧的浏览器,如果添加了快速链接以防刷新不正确,请执行以下操作: 将显示为 重新导向 仍然可以通过单击几下到达目的地。

  • 带提示的页面跳转功能: $this->success(); //提示“操作已成功”,不进行任何跳转,页面终止,常用于功能调试 $this->success('','/index/ok'); //提示“操作已成功”,跳转到一个能访问到的ULR地址 $this->success('您太棒了,操作成功啦!','/index/ok'); //自定义提示,跳转到一个能访问到的ULR地址

  • 这里我想使用RequestDispatcher从servlet调用jsp页面,问题是在jsp代码中调用java代码没有问题,问题是html代码不起作用 下面是代码: 重定向servlet。爪哇: showReportt_arb。jsp: 在上面的逻辑中,java代码显示在服务器控制台中,但html代码没有显示。请帮我解决这个问题

  • 我和拉威尔3一起工作。我有一个动作按钮,将打开一个弹出模式。 我有一个设备列表。第一页,弹出模式在那里。但对于第二页,弹出模式不出来,但它重定向回第一页。 index.blade.php代码: {{HTML::link(“设备#openProfile”,“强制配置文件”,数组(“id”)= JS: 函数openImposeProfile(id){ document.getElementById("

  • 我有一个两步验证表单,这意味着第一个用户输入得到验证(在ValidatecKetData控制器中),如果一切正常,您可以进入下一个表单页面,我可以通过 问题:在第二页,用户需要上传一个文件,如果他不这样做,验证失败。 如果是这种情况,验证器类立即重定向,因为它是后路由,所以不起作用。 所以我创建了一个这样的获取路线: 并将其放入-方法: 我把它放到了-method中,因为如果用户不在第二页附加文件