【问题标题】:Springboot "Circular view path" and "Error resolving Template"Springboot“圆形视图路径”和“错误解析模板”
【发布时间】:2018-07-20 06:49:54
【问题描述】:

我正在尝试用一个小页面实现 JWT,但遇到了“圆形视图路径”问题。我读到它可以用 spring-boot-starter-thymeleaf 解决,但后来我得到了“错误解析模板”

用户控制器

@Controller
public class UserController {
private UserRepository userRep;
private BCryptPasswordEncoder bCryptPasswordEncoder;


public UserController (UserRepository applicationUserRepository,
                      BCryptPasswordEncoder bCryptPasswordEncoder) {
    this.userRep = applicationUserRepository;
    this.bCryptPasswordEncoder = bCryptPasswordEncoder;
}

// Especificamos el endpoint para realizar el registro, y el parámetro
// necesario (tipo Usuario) que debe de estar completamente formado
@RequestMapping(value = "/registraUsuario", method=RequestMethod.POST)
public void registraUsuario (@RequestBody Usuario usuario) {
    usuario.setPassword(bCryptPasswordEncoder.encode(usuario.getPassword()));
    userRep.save(usuario);
    }
}

用户存储库

@RepositoryRestResource(collectionResourceRel = "users", path = "users")
   public interface UserRepository extends JpaRepository<Usuario, Long> {
   Usuario findByEmail(String mail);
}

UserDetailsS​​ervice

@Service
public class UserDetailsServiceImpl implements UserDetailsService {
private UserRepository applicationUserRepository;

public UserDetailsServiceImpl(UserRepository applicationUserRepository) {
    this.applicationUserRepository = applicationUserRepository;
}

@Override
public UserDetails loadUserByUsername(String mail) throws UsernameNotFoundException {
    Usuario applicationUser = applicationUserRepository.findByEmail(mail);
    if (applicationUser == null) {
        throw new UsernameNotFoundException(mail);
    }
    return new User(applicationUser.getEmail(), applicationUser.getPassword(), emptyList());
   }
}

任何想法。提前致谢

【问题讨论】:

    标签: maven spring-boot spring-security spring-data-jpa


    【解决方案1】:

    解决了。似乎问题是 UserController 有 @RequestMapping(value = "/registraUsuario",它与 SecurityConstants 文件中的 SIGN_UP_URL 相同

    public class SecurityConstants {
        public static final String SECRET = "SecretKeyToGenJWTs";
        public static final long EXPIRATION_TIME = 864_000_000; // 10 days
        // Cabeceras para probar con el postman
        public static final String TOKEN_PREFIX = "Bearer ";
        public static final String HEADER_STRING = "Permiso";
        // Aquí iría la URL donde se registra el ususario en nuestra página
        public static final String SIGN_UP_URL = "/registraUsuario";
    }
    

    这就是创建循环。我已经更改了SIGN_UP_URL =“/usuario/registraUsuario”的名称,并将@RequestMapping(“/usuario”)添加到userController,现在没有问题了。所以最后,这是我更改的这两个文件的最终代码

    用户控制器

    @Controller
    @RequestMapping("/usuario")
    public class UserController {
        private UserRepository userRep;
        private BCryptPasswordEncoder bCryptPasswordEncoder;
    
    
        public UserController (UserRepository applicationUserRepository,
                              BCryptPasswordEncoder bCryptPasswordEncoder) {
            this.userRep = applicationUserRepository;
            this.bCryptPasswordEncoder = bCryptPasswordEncoder;
        }
    
        // Especificamos el endpoint para realizar el registro, y el parámetro
        // necesario (tipo Usuario) que debe de estar completamente formado
        @RequestMapping(value = "/registraUsuario", method=RequestMethod.POST)
        @ResponseStatus(HttpStatus.OK)
        public void registraUsuario (@RequestBody Usuario usuario) {
            usuario.setPassword(bCryptPasswordEncoder.encode(usuario.getPassword()));
            userRep.save(usuario);
        }
    }
    

    安全常量

    public class SecurityConstants {
        public static final String SECRET = "SecretKeyToGenJWTs";
        public static final long EXPIRATION_TIME = 864_000_000; // 10 days
        // Cabeceras para probar con el postman
        public static final String TOKEN_PREFIX = "Bearer ";
        public static final String HEADER_STRING = "Permiso";
        // Aquí iría la URL donde se registra el ususario en nuestra página
        public static final String SIGN_UP_URL = "/usuario/registraUsuario";
    }
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-20
      • 2014-09-10
      • 2019-12-05
      • 2017-09-12
      • 2021-11-05
      • 2019-01-21
      • 2020-12-25
      • 2018-01-12
      相关资源
      最近更新 更多