rodrigo 2013-02-26 21:05:12 +00:00
parent b478463848
commit 3b114e108d
5 changed files with 87 additions and 165 deletions

View File

@ -1,52 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
- Spring namespace-based configuration
-->
<!-- - Spring namespace-based configuration -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:security="http://www.springframework.org/schema/security"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:security="http://www.springframework.org/schema/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.0.xsd">
<security:http auto-config="true" access-denied-page="/accessDenied.zul">
<security:form-login login-page="/login.zul" default-target-url="/index.zul" authentication-failure-url="/login.zul?login_error=1"/>
<security:logout logout-success-url="/login.zul"/>
<security:http auto-config="true" access-denied-page="/accessDenied.zul" >
<security:form-login login-page="/index.zul" default-target-url="/index.zul" authentication-failure-url="/index.zul" always-use-default-target='true'/>
<security:logout logout-success-url="/index.zul" invalidate-session="true"/>
<!--
<security:intercept-url pattern="/modulos/admin/**" access="ROLE_MODULO_ADMIN"/>
<security:intercept-url pattern="/modulos/secretaria/**" access="ROLE_MODULO_SECRETARIA"/>
<security:intercept-url pattern="/modulos/contabil/**" access="ROLE_MODULO_CONTABIL"/>
<security:intercept-url pattern="/modulos/locacao/**" access="ROLE_MODULO_LOCACAO"/>
<security:intercept-url pattern="/modulos/academia/**" access="ROLE_MODULO_ACADEMIA"/>
<security:intercept-url pattern="/gui/img/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<security:intercept-url pattern="/gui/js/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<security:intercept-url pattern="/gui/**" access="IS_AUTHENTICATED_REMEMBERED" />
<security:intercept-url pattern="/" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<security:intercept-url pattern="/login.zul" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<security:intercept-url pattern="/index.zul" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<security:intercept-url pattern="/modulos/**" access="IS_AUTHENTICATED_REMEMBERED" />
<security:intercept-url pattern="/" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<security:intercept-url pattern="/login.zul" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<security:intercept-url pattern="/index.zul" access="IS_AUTHENTICATED_REMEMBERED"/>
-->
<!--security:session-management> <security:concurrency-control max-sessions="1" error-if-maximum-exceeded="true"/> </security:session-management -->
<!--security:session-management>
<security:concurrency-control max-sessions="1" error-if-maximum-exceeded="true"/>
</security:session-management-->
<!--security:remember-me/ -->
<!--security:remember-me/-->
</security:http>
</security:http>
<bean id="passwordEncoder" class="com.rjconsultores.ventaboletos.utilerias.spring.security.MiPasswordEncoder" />
<bean id="passwordEncoder"
class="org.springframework.security.authentication.encoding.Md5PasswordEncoder" />
<security:authentication-manager>
<security:authentication-provider user-service-ref="usuarioService">
<security:password-encoder ref="passwordEncoder">
<security:salt-source user-property="login"/>
</security:password-encoder>
</security:authentication-provider>
</security:authentication-manager>
<security:authentication-manager>
<security:authentication-provider user-service-ref="usuarioService">
<security:password-encoder ref="passwordEncoder" />
</security:authentication-provider>
</security:authentication-manager>
</beans>

View File

@ -7,7 +7,6 @@ package com.rjconsultores.ventaboletos.web.gui.controladores;
import java.util.HashMap;
import java.util.Map;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
@ -101,12 +100,7 @@ public class IndexController extends MyGenericForwardComposer {
}
}
public void onClick$toolBar(Event ev) {
UsuarioLogado.setUsuarioLogado(null);
desktop.getExecution().sendRedirect("/index.zul");
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public void onClick$toolBarUser(Event ev) {
Map args = new HashMap();
args.put("usuario", usuario);

View File

@ -1,91 +0,0 @@
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.rjconsultores.ventaboletos.web.gui.controladores;
import com.rjconsultores.ventaboletos.entidad.Usuario;
import com.rjconsultores.ventaboletos.service.UsuarioService;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
import com.rjconsultores.ventaboletos.web.utilerias.Base64;
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
import java.security.MessageDigest;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.zkoss.util.resource.Labels;
import org.zkoss.zhtml.Messagebox;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zul.Textbox;
/**
*
* @author rodrigo
*/
@Controller("loginController")
@Scope("prototype")
public class LoginController extends MyGenericForwardComposer {
@Autowired
private UsuarioService usuarioService;
private Usuario usuario;
private Textbox txtUsuario;
private Textbox txtSenha;
private Logger log = Logger.getLogger(LoginController.class);
public Textbox getTxtSenha() {
return txtSenha;
}
public void setTxtSenha(Textbox txtSenha) {
this.txtSenha = txtSenha;
}
public Textbox getTxtUsuario() {
return txtUsuario;
}
public void setTxtUsuario(Textbox txtUsuario) {
this.txtUsuario = txtUsuario;
}
public void onOK$txtSenha(Event ev) {
onClick$btnAcessar(ev);
}
public void onClick$btnAcessar(Event ev) {
String stUsuario = txtUsuario.getText();
String senha = txtSenha.getText();
try {
if ((stUsuario != null) && (senha != null)) {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] pass = md.digest(senha.getBytes());
senha = Base64.byteArrayToBase64(pass);
usuario = usuarioService.buscarPeloNomeSenha(stUsuario, senha);
if (usuario != null) {
UsuarioLogado.setUsuarioLogado(usuario);
desktop.getExecution().sendRedirect("/index.zul");
closeWindow();
} else {
Messagebox.show(
Labels.getLabel("winLogin.lblloginIncorreto"),
Labels.getLabel("winLogin.title"),
Messagebox.OK, Messagebox.INFORMATION);
}
} else {
Messagebox.show(
Labels.getLabel("winLogin.lblloginIncorreto"),
Labels.getLabel("winLogin.title"),
Messagebox.OK, Messagebox.INFORMATION);
}
} catch (Exception ex) {
log.error(ex);
}
}
}

View File

@ -36,7 +36,7 @@
<south>
<toolbar height="28px">
<toolbarbutton id="toolBar" tooltiptext="${c:l('indexController.toolBar.tooltiptext')}"
image="/gui/img/logout.png"/>
image="/gui/img/logout.png" href="/j_spring_security_logout"/>
<toolbarbutton id="toolBarUser" image="/gui/img/user24.png"/>
</toolbar>
</south>

View File

@ -4,35 +4,69 @@
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" arg0="winLogin"?>
<?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c"?>
<zk xmlns="http://www.zkoss.org/2005/zul">
<zk xmlns="http://www.zkoss.org/2005/zul" xmlns:h="http://www.w3.org/1999/xhtml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:w="http://www.zkoss.org/2005/zk/client"
xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul/zul.xsd">
<window id="winLogin" title="${c:l('winLogin.title')}" border="normal" closable="false"
width="400px" position="center" apply="${loginController}" contentStyle="overflow:auto" >
<grid>
<rows >
<row align="left">
<label id="lblUsuario" value="${c:l('winLogin.lblUsuario')}" />
<hbox align="center">
<image src="/gui/img/user24.png"/>
<textbox id="txtUsuario" constraint="no empty"
use="com.rjconsultores.ventaboletos.web.utilerias.MyTextbox"/>
</hbox>
</row>
<window id="winLogin" title="${c:l('winLogin.title')}" border="normal" width="400px" closable="false" position="center"
mode="overlapped" onCreate="u.focus()">
<row align="left">
<label id="lblSenha" value="${c:l('winLogin.lblSenha')}"/>
<hbox align="center">
<image src="/gui/img/pass24_4.png"/>
<textbox id="txtSenha" type="password" constraint="no empty"/>
</hbox>
</row>
<h:form id="f" name="f" action="j_spring_security_check" method="POST" xmlns:h="http://www.w3.org/1999/xhtml">
<grid w:onOK="validate()">
<rows>
<row align="left">
<label value="${c:l('winLogin.lblUsuario')}" />
<hbox align="center">
<image src="/gui/img/user24.png" />
<textbox id="u" name="j_username" constraint="no empty"
use="com.rjconsultores.ventaboletos.web.utilerias.MyTextbox" />
</hbox>
</row>
<row align="left">
<label value="${c:l('winLogin.lblSenha')}" />
<hbox align="center">
<image src="/gui/img/pass24_4.png" />
<textbox id="p" type="password" name="j_password" constraint="no empty" />
</hbox>
</row>
<row spans="2" align="center">
<hbox align="center">
<h:input type="button" value="${c:l('winLogin.btnAcessar')}" w:onClick="validate()" />
</hbox>
</row>
</rows>
</grid>
</h:form>
<script type="text/javascript">
function validate() {
var pwd = jq('$p').val() == '';
var name = jq('$u').val() == '';
<row spans="2" align="center">
<hbox align="center">
<button id="btnAcessar" label="${c:l('winLogin.btnAcessar')}"/>
</hbox>
</row>
</rows>
</grid>
</window>
var ok = 1;
if (name == true){
ok = 0;
}
if (pwd == true){
ok = 0;
}
if(ok == 1){
jq('$f').submit();
}
}
</script>
<zscript>
//System.out.println("gleimar="+Executions.getCurrent().getSession().getAttribute(org.springframework.security.web.authentication.AbstractProcessingFilter.SPRING_SECURITY_LAST_EXCEPTION_KEY));
Exception exep = Executions.getCurrent().getSession().getAttribute(org.springframework.security.web.authentication.AbstractProcessingFilter.SPRING_SECURITY_LAST_EXCEPTION_KEY);
if (exep != null ){
Clients.alert(org.zkoss.util.resource.Labels.getLabel("winLogin.lblloginIncorreto"),
org.zkoss.util.resource.Labels.getLabel("winLogin.title"), Messagebox.INFORMATION);
}
</zscript>
</window>
</zk>