当前位置:首页>财经>正文

用springmvc怎么做登录与注册 springboot 整合springsecurity 前后端分离怎么实现登陆

2023-05-23 18:48:54 互联网 未知 财经

 用springmvc怎么做登录与注册 springboot 整合springsecurity 前后端分离怎么实现登陆

用springmvc怎么做登录与注册

package com.javaniu.controller

import java.io.IOException

import javax.servlet.http.HttpServletResponse
import javax.servlet.http.HttpSession

import org.apache.log4j.Logger
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Controller
import org.springframework.web.bind.annotation.ModelAttribute
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RequestMethod
import org.springframework.web.servlet.ModelAndView

import com.javaniu.dao.UserDao
import com.javaniu.module.User

@Controller
@RequestMapping({ "/user" })
public class UserController {

Logger logger = Logger.getLogger(UserController.class)

@Autowired
public HttpSession session
@Autowired
public UserDao userDao

@RequestMapping(value = { "" }, method = { RequestMethod.GET })
public ModelAndView index() {
ModelAndView modelAndView = new ModelAndView("user/index")
User user = new User()
modelAndView.addObject("user", user)
return modelAndView
}

@RequestMapping(value = { "create" }, method = { RequestMethod.GET })
public ModelAndView create() {
ModelAndView modelAndView = new ModelAndView("user/create")
User user = new User()
modelAndView.addObject("user", user)
return modelAndView
}

}

springboot 整合springsecurity 前后端分离怎么实现登陆

首先分析一下工作量吧,因为要支持 restful 风格的接口,那么我们在判断用户是不是有权限访问的时候不仅要判断 url 还要判断 请求方式。 所以我门需要修改数据库表,因为我门的权限表还没有method 字段。
由于要判断 url 和 method 所以要在CustomUserService 类的 loadUserByUsername
方法中要添加 权限的 url 和 method 。但是SimpleGrantedAuthority 只支持传入一个参数。
所以我门考虑要再写一个类 实现 GrantedAuthority 接口,并在构造函数中传入两个参数。嘻嘻。
由于我们不仅要判断url 还要 判断请求方法,所以当然要修改 MyAccessDecisionManager 的decide 方法的内容了。
因为:decide 方法是判定是否拥有权限的决策方法 ,三个参数的含义分别为:
//authentication 是释CustomUserService中循环添加到 GrantedAuthority 对象中的权限信息集合.

//object 包含客户端发起的请求的requset信息,可转换为 HttpServletRequest request = ((FilterInvocation) object).getHttpRequest()

//configAttributes 为MyInvocationSecurityMetadataSource的getAttributes(Object object)这个方法返回的结果,此方法是为了判定用户请求的url 是否在权限表中,如果在权限表中,则返回给 decide 方法,用来判定用户是否有此权限。如果不在权限表中则放行。

当然在 修改一下 MyInvocationSecurityMetadataSourceService 的getAttributes
方法。//此方法是为了判定用户请求的url 是否在权限表中,如果在权限表中,则返回给 decide
方法,用来判定用户是否有此权限。如果不在权限表中则放行。
//因为我不想每一次来了请求,都先要匹配一下权限表中的信息是不是包含此url,我准备直接拦截,不管请求的url 是什么都直接拦截,然后在MyAccessDecisionManager的decide 方法中做 拦截还是放行的决策。

5.关闭csrf
6.添加restful 风格的接口

好了分析完了,接下来就是编码了。

spring boot 怎么注册类到ioc中

1.通注解获取(简单推荐): public class Hello { @Autowired HttpServletRequest request //获取request } 2.web.xml配置监听: org.springframework.web.context.request.RequestContextListener java代码
,