Iniciar sessao JSF, Spring security, Primefaces

7 respostas
jsfprimefacesjavaspring
H

Alo galera tudo bem? Obrigado por me ajudar desde ja!

Galera sou iniciante e nao tenho nem ideia de fazer o seguinte:

Tenho um projecto Maven, com JSF 2.2, Primefaces 6.0, e spring security configurados.

Tudo isso citado acima ja foi configurado e testado e esta a funcionar.

A minha duvida e a seguinte:

O meu projecto tem dois tipos de Usuarios, Fornecedores e administradores, e cada um deles precisa visualizar tabelas no sistema mas as tabelas que tenho actualmente mostram todos dados. Gostaria de conseguir logarcom com um usuario e a tabela mostrar dados referentes a esse usuario apenas,

Repito sou iniciante tentem ser o mais claro possivel obrigado desde ja.

7 Respostas

A

Boa tarde!

Deve ter outros meios, mas eu faço assim…

No objeto Usuário tenho uma variável booleana para isto.

Ai quando vou gerar a query no Java eu olho se a variável e true, se for mostro todos os dados, se não mostro os dados referente ao usuário somente

H

Entendi a explicao mas nao faco a minima ideia de como devo fazer vou colocar o meu codigo aqui pra ver se voce pode me ajudar.

H

package br.com.cafecomjava.springsecurity.dto;

import java.util.ArrayList;
import java.util.Collection;

import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;

public class UserDetailsImpl implements UserDetails {

/**
 * 
 */
private static final long serialVersionUID = 1L;
private String userName;
private String password;
private ArrayList<GrantedAuthorityImpl> authorities;

public void setUserName(String userName) {
	this.userName = userName;
}

public void setPassword(String password) {
	this.password = password;
}

public void addAuthority(String authorityName){
	if (this.authorities == null) {
		authorities = new ArrayList<GrantedAuthorityImpl>();
	}
	GrantedAuthorityImpl aut = new GrantedAuthorityImpl();
	aut.setName(authorityName);
	authorities.add(aut);
}

@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
	// TODO Auto-generated method stub
	return authorities;
}

@Override
public String getPassword() {
	// TODO Auto-generated method stub
	return this.password;
}

@Override
public String getUsername() {
	// TODO Auto-generated method stub
	return this.userName;
}

@Override
public boolean isAccountNonExpired() {
	// TODO Auto-generated method stub
	return true;
}

@Override
public boolean isAccountNonLocked() {
	// TODO Auto-generated method stub
	return true;
}

@Override
public boolean isCredentialsNonExpired() {
	// TODO Auto-generated method stub
	return true;
}

@Override
public boolean isEnabled() {
	// TODO Auto-generated method stub
	return true;
}

}

H
package br.com.cafecomjava.springsecurity.controller;
import org.springframework.security.core.userdetails.UserDetails;

import org.springframework.security.core.userdetails.UserDetailsService;

import org.springframework.security.core.userdetails.UsernameNotFoundException;

import br.com.cafecomjava.springsecurity.dto.UserDetailsImpl;

public class UserDetailServiceImpl implements UserDetailsService {

@Override
public UserDetails loadUserByUsername(String username)
		throws UsernameNotFoundException {
	
	if (username.equalsIgnoreCase("cafecomjava")) {
		UserDetailsImpl user = new UserDetailsImpl();
		user.setUserName(username);
		user.setPassword("1234");
		user.addAuthority("ROLE_USER");
		return user;
	}
	throw new UsernameNotFoundException("Usuario não encontrado");
}

}

H

package br.com.cafecomjava.springsecurity.dto;

import org.springframework.security.core.GrantedAuthority;

public class GrantedAuthorityImpl implements GrantedAuthority {

/**
 * 
 */
private static final long serialVersionUID = 1L;

private String name;



public String getName() {
	return name;
}



public void setName(String name) {
	this.name = name;
}

@Override
public String getAuthority() {
	// TODO Auto-generated method stub
	return this.name;
}

}

H

security.xml

<?xml version="1.0" encoding="UTF-8"?>

security:http
<security:intercept-url pattern="/admin/**" access=“ROLE_USER” />
<security:form-login login-page="/login.html" default-target-url="/admin/logado.html" authentication-failure-url="/login.html?erro=true"/>
<security:logout logout-success-url="/logout.html" />
</security:http>

security:authentication-manager
<security:authentication-provider user-service-ref=“userDetailsService”></security:authentication-provider>
</security:authentication-manager>

H

Login.html

<!--Let browser know website is optimized for mobile-->
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
</head>

<body>
  <!--Import jQuery before materialize.js-->
  <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
  <script type="text/javascript" src="materialize/js/materialize.min.js"></script>
  <div class="row">
<form class="col s12" action="/springsecurity/j_spring_security_check" method="POST">
  <div class="row">
    <div class="input-field col s6">
      <input placeholder="Placeholder" id="j_username" name="j_username" type="text" class="validate">
      <label for="first_name">First Name</label>
    </div>
    <div class="input-field col s6">
      <input id="j_password" name="j_password" type="text" class="validate">
      <label for="last_name">Last Name</label>
    </div>
  </div>
  <div class="row">
  	<button class="btn waves-effect waves-light" type="submit" name="action">Submit</button>
  </div>
</form>
Criado 12 de junho de 2017
Ultima resposta 12 de jun. de 2017
Respostas 7
Participantes 2