Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 2071 → Rev 2072

/es2018/18497/src/java/pt/estgp/es/exemplos/hibernate/services/ServicoSessoes.java
5,10 → 5,14
import pt.estgp.es.exemplos.hibernate.UserSession;
import pt.estgp.es.exemplos.hibernate.UserSessionImpl;
import pt.estgp.es.exemplos.hibernate.security.SecurityContextProvider;
import pt.estgp.es.exemplos.hibernate.security.logic.NotAuthenticatedException;
import pt.estgp.es.exemplos.hibernate.security.logic.Transaction;
 
import javax.servlet.http.HttpServletRequest;
import java.util.List;
 
import static org.hibernate.criterion.Restrictions.eq;
 
public class ServicoSessoes {
 
/**
41,4 → 45,40
session = (UserSession) HibernateUtils.narrow(session);
return session;
}
 
@Transaction
public UserSession login(String username, String password) throws NotAuthenticatedException {
List<User> users;
UserSession persistente;
 
String cookie = SecurityContextProvider.getInstance().getSecuritySessionContext().getRequester();
persistente = (UserSession) HibernateUtils.getCurrentSession().load(UserSession.class,cookie);
 
users = HibernateUtils.getCurrentSession()
.createCriteria(User.class)
.add(eq("username", username))
.add(eq("password", password)).list();
 
 
if (users==null || users.size()==0)
throw new NotAuthenticatedException("falha de autenticaĆ§Ć£o");
 
User u= users.get(0);
 
persistente.setUser(u);
 
return persistente;
}
 
@Transaction
public void logout() {
List<User> users;
UserSession persistente;
 
String cookie = SecurityContextProvider.getInstance().getSecuritySessionContext().getRequester();
persistente = (UserSession) HibernateUtils.getCurrentSession().load(UserSession.class,cookie);
 
persistente.setUser(null);
 
}
}
/es2018/18497/src/java/pt/estgp/es/exemplos/hibernate/services/ServicoPaginas.java
8,6 → 8,7
import pt.estgp.es.exemplos.hibernate.security.logic.PrintParameterExample;
import pt.estgp.es.exemplos.hibernate.security.logic.Transaction;
import pt.estgp.es.exemplos.hibernate.web.PaginasServlet;
import pt.estgp.es.exemplos.hibernate.web.SeccaoServlet;
 
import javax.servlet.ServletException;
 
34,6 → 35,29
HibernateUtils.getCurrentSession().save(seccao);
}
 
@Transaction @IsAuthenticated
public void criaComponenteTextoService(String idSeccao, String texto, String titulo)
{
try {
new SeccaoServlet().init();
} catch (ServletException e) {
e.printStackTrace();
}
Seccao seccao = (Seccao) HibernateUtils.getCurrentSession().load(Seccao.class,new Long(idSeccao));
 
long id = seccao.getPagina().getId();
 
 
ConteudoTexto conteudoTexto= new ConteudoTextoImpl();
conteudoTexto.setTitulo(titulo);
conteudoTexto.setTexto(texto);
 
seccao.getConteudoTexto().add(conteudoTexto);
conteudoTexto.setSeccao(seccao);
 
HibernateUtils.getCurrentSession().save(conteudoTexto);
}
 
@Transaction @IsAuthenticated @HasRole(role = "admin")
public long deleteSeccaoService(String idSeccao)
{
50,6 → 74,18
}
 
@Transaction @IsAuthenticated
public long deleteConteudoTextoService(String idConteudoTexto) {
ConteudoTexto conteudoTexto = (ConteudoTexto) HibernateUtils.getCurrentSession().load(ConteudoTexto.class, new Long(idConteudoTexto));
 
long id = conteudoTexto.getSeccao().getId();
conteudoTexto.getSeccao().getConteudoTexto().remove(conteudoTexto);
conteudoTexto.setSeccao(null);
HibernateUtils.getCurrentSession().delete(conteudoTexto);
 
return id;
}
 
@Transaction @IsAuthenticated
public Pagina criaPaginaService(String titulo)
{
String cookie = SecurityContextProvider.getInstance().getSecuritySessionContext().getRequester();
/es2018/18497/src/java/pt/estgp/es/exemplos/hibernate/web/login/LoginAction.java
4,6 → 4,8
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import pt.estgp.es.exemplos.hibernate.services.ServicoSessoes;
import pt.estgp.es.exemplos.hibernate.web.SecurityFilter;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
32,5 → 34,23
//return mapping.findForward("ok");
 
}
public ActionForward logout(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
 
LoginForm lf = (LoginForm) form;
 
 
new ServicoSessoes().logout();
SecurityFilter.loadSessionProxy(true,request);
 
return mapping.getInputForward();
 
//return mapping.findForward("ok");
 
}
 
}
/es2018/18497/src/java/pt/estgp/es/exemplos/hibernate/web/login/LoginRest.java
3,7 → 3,11
import org.json.JSONException;
import org.json.JSONObject;
import pt.estgp.es.exemplos.hibernate.HibernateUtils;
import pt.estgp.es.exemplos.hibernate.User;
import pt.estgp.es.exemplos.hibernate.UserSession;
import pt.estgp.es.exemplos.hibernate.security.SecurityContextProvider;
import pt.estgp.es.exemplos.hibernate.security.logic.NotAuthenticatedException;
import pt.estgp.es.exemplos.hibernate.services.ServicoSessoes;
import pt.estgp.es.exemplos.hibernate.web.SecurityFilter;
import pt.estgp.es.exemplos.hibernate.web.UserFilter;
import pt.estgp.es.exemplos.hibernate.web.rest.AbstractRestServlet;
12,35 → 16,18
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
 
import static org.hibernate.criterion.Restrictions.eq;
 
public class LoginRest extends AbstractRestServlet
{
public JSONObject login(JSONObject data, HttpServletRequest req, HttpServletResponse resp) throws JSONException
{
public JSONObject login(JSONObject data, HttpServletRequest req, HttpServletResponse resp) throws JSONException, NotAuthenticatedException, IOException, ServletException {
String username = data.getString("username");
String password = data.getString("password");
 
HibernateUtils.getCurrentSession().beginTransaction();
new ServicoSessoes().login(username,password);
 
//TODO COMPLETAR
UserSession session = null;
try {
session = SecurityFilter.loadSessionProxy(req);
UserSession persistente = (UserSession) HibernateUtils.getCurrentSession().get(UserSession.class,session.getCookie());
//persistente.setUser(u);
} catch (IOException e) {
e.printStackTrace();
} catch (ServletException e) {
e.printStackTrace();
}
 
 
 
System.out.println(username);
System.out.println(password);
 
 
 
JSONObject js = new JSONObject();
js.put("result","ok");
 
49,8 → 36,13
return js;
}
 
public JSONObject logout(JSONObject data, HttpServletRequest req, HttpServletResponse resp) throws JSONException
{
 
 
public JSONObject logout(JSONObject data, HttpServletRequest req, HttpServletResponse resp) throws JSONException {
 
new ServicoSessoes().logout();
 
addMessage("Volte sempre",req);
JSONObject js = new JSONObject();
js.put("result","ok");
 
/es2018/18497/src/java/pt/estgp/es/exemplos/hibernate/web/SecurityFilter.java
23,15 → 23,26
 
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
 
HttpServletResponse response = (HttpServletResponse) servletResponse;
response.setHeader("Cache-Control", "no-cache");
loadSessionProxy(servletRequest);
filterChain.doFilter(servletRequest, response);
}
 
 
 
public static UserSession loadSessionProxy(ServletRequest servletRequest) throws IOException, ServletException {
 
public static UserSession loadSessionProxy(ServletRequest servletRequest) throws IOException, ServletException
{
return loadSessionProxy(false,servletRequest);
}
 
public static UserSession loadSessionProxy(boolean forceReset, ServletRequest servletRequest) throws IOException, ServletException {
 
if(forceReset)
servletRequest.setAttribute(SESSION_IN_REQUEST_KEY,null);
 
UserSession session = (UserSession) servletRequest.getAttribute(SESSION_IN_REQUEST_KEY);
 
try {
/es2018/18497/src/java/pt/estgp/es/exemplos/hibernate/web/rest/AbstractRestServlet.java
20,8 → 20,6
public abstract class AbstractRestServlet extends HttpServlet
{
 
 
 
public void addMessage(String mensagem, HttpServletRequest request)
{
List<String> messages = (List<String>) request.getAttribute("Messages");