2
respostas

Template em uma pagina e na outra não

Estou aplicando um template em duas paginas diferentes, mas que estão na mesma pasta: index.jsp e perfil.jsp que estão na pagina /WEB-INF/perfil/

http://prntscr.com/cncsr3

O CSS e carregado na index.jsp normalmente, porem na perfil.jsp o template não e carregado.

Ambas estão com os includes:

index.jsp: http://prntscr.com/cncy5t

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="s" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@ taglib uri="http://www.springframework.org/security/tags" prefix="security" %>

<%@include file="/WEB-INF/views/cabecalho.jsp" %>

<security:authentication property="principal" var="pessoa" />
${pessoa.nomeUsuario } 

<%@include file="/WEB-INF/views/rodape.jsp" %>

perfil.jsp: http://prntscr.com/cncxxl

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="s" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@ taglib uri="http://www.springframework.org/security/tags" prefix="security" %>

<%@include file="/WEB-INF/views/cabecalho.jsp" %>

<h1>TESTE TEMPLATE</h1>   
<h2>${pessoa.nomeUsuario}</h2>                


<%@include file="/WEB-INF/views/rodape.jsp" %>

De fato, a unica diferença e o que as duas paginas fazem de diferente. Uma carrega as informações do ususario que esta em sessão, e a outra exibe as informações de acordo com a URL "/perfil/ID"

Segue o PerfilController:

    @RequestMapping("/perfil")
    public ModelAndView listarPessoa(){
        List<Pessoa> pessoas = pessoaDAO.listar();
        ModelAndView modelAndView = new ModelAndView("perfil/index");
        modelAndView.addObject("pessoas", pessoas);

        return modelAndView;
    }

    @RequestMapping("/perfil/{id}")
    public ModelAndView detalhe(@PathVariable("id") Integer id){
        ModelAndView modelAndView = new ModelAndView("perfil/perfil");
        Pessoa pessoa = pessoaDAO.find(id);
        modelAndView.addObject("pessoa", pessoa);

        return modelAndView;
    }
2 respostas

Oi Rafael,

Você olhou nas requisições e está dando 404 mesmo? Ou está dando 403?

Posta também como está a configuração do Spring Security?

Abraço!

Ele não chega a mostrar nenhum erro(404 ou 403). Ele apenas não carrega o CSS da pagina: http://prntscr.com/cngcoy

SecurityConfiguration:

package br.com.esc.conf;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.config.annotation.web.servlet.configuration.EnableWebMvcSecurity;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;

import br.com.esc.daos.PessoaDAO;

@EnableWebMvcSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Autowired
    private PessoaDAO pessoaDAO;

    @Override
    protected void configure(HttpSecurity http) throws Exception {

        http.authorizeRequests()

        /** Paginas que vão ser bloqueadas **/

            .antMatchers("/painel/**").hasRole("ADMIN")

            /** Paginas que vão ser permitidas **/

            .antMatchers("/perfil/perfil").permitAll()
            .antMatchers("/cadastro").permitAll()
            .antMatchers("/cadastroPessoa").permitAll()
            .antMatchers("/resources/**").permitAll()
            .antMatchers("/time/**").permitAll()
            .antMatchers("/").permitAll()

            .anyRequest().authenticated()
            .and().formLogin().loginPage("/login").permitAll()
            .and().logout().logoutRequestMatcher(new AntPathRequestMatcher("/logout"));

    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(pessoaDAO)
            .passwordEncoder(new BCryptPasswordEncoder());
    }

}