Commit 73a7a223a42c1c87a85241da61fb3738260df37a

Authored by Cleverson Sacramento
1 parent ca0a0343
Exists in master

Remoção da detecção de proxy. Isso não importa mais!

impl/core/src/main/java/br/gov/frameworkdemoiselle/exception/ExceptionHandlerInterceptor.java
@@ -49,11 +49,9 @@ import javax.interceptor.InvocationContext; @@ -49,11 +49,9 @@ import javax.interceptor.InvocationContext;
49 import org.slf4j.Logger; 49 import org.slf4j.Logger;
50 50
51 import br.gov.frameworkdemoiselle.DemoiselleException; 51 import br.gov.frameworkdemoiselle.DemoiselleException;
52 -import br.gov.frameworkdemoiselle.internal.bootstrap.CoreBootstrap;  
53 import br.gov.frameworkdemoiselle.internal.producer.LoggerProducer; 52 import br.gov.frameworkdemoiselle.internal.producer.LoggerProducer;
54 import br.gov.frameworkdemoiselle.internal.producer.ResourceBundleProducer; 53 import br.gov.frameworkdemoiselle.internal.producer.ResourceBundleProducer;
55 import br.gov.frameworkdemoiselle.stereotype.Controller; 54 import br.gov.frameworkdemoiselle.stereotype.Controller;
56 -import br.gov.frameworkdemoiselle.util.Beans;  
57 import br.gov.frameworkdemoiselle.util.ResourceBundle; 55 import br.gov.frameworkdemoiselle.util.ResourceBundle;
58 56
59 @Interceptor 57 @Interceptor
@@ -72,7 +70,7 @@ public class ExceptionHandlerInterceptor implements Serializable { @@ -72,7 +70,7 @@ public class ExceptionHandlerInterceptor implements Serializable {
72 getLogger().info(getBundle().getString("handling-exception", cause.getClass().getCanonicalName())); 70 getLogger().info(getBundle().getString("handling-exception", cause.getClass().getCanonicalName()));
73 71
74 boolean handled = false; 72 boolean handled = false;
75 - Class<?> type = getType(target); 73 + Class<?> type = target.getClass();
76 74
77 if (!isLoaded(type)) { 75 if (!isLoaded(type)) {
78 loadHandlers(type); 76 loadHandlers(type);
@@ -87,18 +85,6 @@ public class ExceptionHandlerInterceptor implements Serializable { @@ -87,18 +85,6 @@ public class ExceptionHandlerInterceptor implements Serializable {
87 return handled; 85 return handled;
88 } 86 }
89 87
90 - private final Class<?> getType(final Object target) {  
91 - Class<?> type = target.getClass();  
92 - CoreBootstrap bootstrap = Beans.getReference(CoreBootstrap.class);  
93 -  
94 - if (!bootstrap.isAnnotatedType(type)) {  
95 - getLogger().debug(getBundle().getString("proxy-detected", type, type.getSuperclass()));  
96 - type = type.getSuperclass();  
97 - }  
98 -  
99 - return type;  
100 - }  
101 -  
102 /** 88 /**
103 * If there is an handler in the current class or superClass for the expected exception, then this method will be 89 * If there is an handler in the current class or superClass for the expected exception, then this method will be
104 * returned; Else returns null; 90 * returned; Else returns null;
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/CoreBootstrap.java
@@ -36,18 +36,14 @@ @@ -36,18 +36,14 @@
36 */ 36 */
37 package br.gov.frameworkdemoiselle.internal.bootstrap; 37 package br.gov.frameworkdemoiselle.internal.bootstrap;
38 38
39 -import java.util.HashMap;  
40 import java.util.Locale; 39 import java.util.Locale;
41 -import java.util.Map;  
42 40
43 import javax.enterprise.event.Observes; 41 import javax.enterprise.event.Observes;
44 import javax.enterprise.inject.spi.AfterDeploymentValidation; 42 import javax.enterprise.inject.spi.AfterDeploymentValidation;
45 -import javax.enterprise.inject.spi.AnnotatedType;  
46 import javax.enterprise.inject.spi.BeanManager; 43 import javax.enterprise.inject.spi.BeanManager;
47 import javax.enterprise.inject.spi.BeforeBeanDiscovery; 44 import javax.enterprise.inject.spi.BeforeBeanDiscovery;
48 import javax.enterprise.inject.spi.BeforeShutdown; 45 import javax.enterprise.inject.spi.BeforeShutdown;
49 import javax.enterprise.inject.spi.Extension; 46 import javax.enterprise.inject.spi.Extension;
50 -import javax.enterprise.inject.spi.ProcessAnnotatedType;  
51 47
52 import org.slf4j.Logger; 48 import org.slf4j.Logger;
53 49
@@ -58,8 +54,6 @@ import br.gov.frameworkdemoiselle.util.ResourceBundle; @@ -58,8 +54,6 @@ import br.gov.frameworkdemoiselle.util.ResourceBundle;
58 54
59 public class CoreBootstrap implements Extension { 55 public class CoreBootstrap implements Extension {
60 56
61 - private final Map<Class<?>, AnnotatedType<?>> beans = new HashMap<Class<?>, AnnotatedType<?>>();  
62 -  
63 private Logger logger; 57 private Logger logger;
64 58
65 private ResourceBundle bundle; 59 private ResourceBundle bundle;
@@ -80,10 +74,6 @@ public class CoreBootstrap implements Extension { @@ -80,10 +74,6 @@ public class CoreBootstrap implements Extension {
80 return this.bundle; 74 return this.bundle;
81 } 75 }
82 76
83 - public boolean isAnnotatedType(Class<?> type) {  
84 - return beans.containsKey(type);  
85 - }  
86 -  
87 public void engineOn(@Observes final BeforeBeanDiscovery event, BeanManager beanManager) { 77 public void engineOn(@Observes final BeforeBeanDiscovery event, BeanManager beanManager) {
88 String description; 78 String description;
89 Logger log = getLogger(); 79 Logger log = getLogger();
@@ -97,10 +87,6 @@ public class CoreBootstrap implements Extension { @@ -97,10 +87,6 @@ public class CoreBootstrap implements Extension {
97 log.info(description); 87 log.info(description);
98 } 88 }
99 89
100 - protected <T> void detectAnnotation(@Observes final ProcessAnnotatedType<T> event) {  
101 - beans.put(event.getAnnotatedType().getJavaClass(), event.getAnnotatedType());  
102 - }  
103 -  
104 public void takeOff(@Observes final AfterDeploymentValidation event) { 90 public void takeOff(@Observes final AfterDeploymentValidation event) {
105 String description = getBundle().getString("taking-off"); 91 String description = getBundle().getString("taking-off");
106 92
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/ConfigurationLoader.java
@@ -64,10 +64,8 @@ import br.gov.frameworkdemoiselle.annotation.Name; @@ -64,10 +64,8 @@ import br.gov.frameworkdemoiselle.annotation.Name;
64 import br.gov.frameworkdemoiselle.configuration.ConfigType; 64 import br.gov.frameworkdemoiselle.configuration.ConfigType;
65 import br.gov.frameworkdemoiselle.configuration.Configuration; 65 import br.gov.frameworkdemoiselle.configuration.Configuration;
66 import br.gov.frameworkdemoiselle.configuration.ConfigurationException; 66 import br.gov.frameworkdemoiselle.configuration.ConfigurationException;
67 -import br.gov.frameworkdemoiselle.internal.bootstrap.CoreBootstrap;  
68 import br.gov.frameworkdemoiselle.internal.producer.LoggerProducer; 67 import br.gov.frameworkdemoiselle.internal.producer.LoggerProducer;
69 import br.gov.frameworkdemoiselle.internal.producer.ResourceBundleProducer; 68 import br.gov.frameworkdemoiselle.internal.producer.ResourceBundleProducer;
70 -import br.gov.frameworkdemoiselle.util.Beans;  
71 import br.gov.frameworkdemoiselle.util.Reflections; 69 import br.gov.frameworkdemoiselle.util.Reflections;
72 import br.gov.frameworkdemoiselle.util.ResourceBundle; 70 import br.gov.frameworkdemoiselle.util.ResourceBundle;
73 import br.gov.frameworkdemoiselle.util.Strings; 71 import br.gov.frameworkdemoiselle.util.Strings;
@@ -86,8 +84,6 @@ public class ConfigurationLoader implements Serializable { @@ -86,8 +84,6 @@ public class ConfigurationLoader implements Serializable {
86 84
87 private Logger logger; 85 private Logger logger;
88 86
89 - private CoreBootstrap bootstrap;  
90 -  
91 /** 87 /**
92 * Loads a config class filling it with the corresponding values. 88 * Loads a config class filling it with the corresponding values.
93 * 89 *
@@ -98,14 +94,9 @@ public class ConfigurationLoader implements Serializable { @@ -98,14 +94,9 @@ public class ConfigurationLoader implements Serializable {
98 public void load(Object object) throws ConfigurationException { 94 public void load(Object object) throws ConfigurationException {
99 Class<?> config = object.getClass(); 95 Class<?> config = object.getClass();
100 96
101 - if (!getBootstrap().isAnnotatedType(config)) {  
102 - config = config.getSuperclass();  
103 - getLogger().debug(getBundle().getString("proxy-detected", config, config.getClass().getSuperclass()));  
104 - }  
105 -  
106 getLogger().debug(getBundle().getString("loading-configuration-class", config.getName())); 97 getLogger().debug(getBundle().getString("loading-configuration-class", config.getName()));
107 98
108 - for (Field field : Reflections.getNonStaticDeclaredFields(config)) { 99 + for (Field field : Reflections.getNonStaticFields(config)) {
109 loadField(field, object, config); 100 loadField(field, object, config);
110 } 101 }
111 } 102 }
@@ -418,14 +409,6 @@ public class ConfigurationLoader implements Serializable { @@ -418,14 +409,6 @@ public class ConfigurationLoader implements Serializable {
418 return logger; 409 return logger;
419 } 410 }
420 411
421 - private CoreBootstrap getBootstrap() {  
422 - if (bootstrap == null) {  
423 - bootstrap = Beans.getReference(CoreBootstrap.class);  
424 - }  
425 -  
426 - return bootstrap;  
427 - }  
428 -  
429 private final class Key { 412 private final class Key {
430 413
431 private String prefix; 414 private String prefix;
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/SecurityContextImpl.java
@@ -151,19 +151,13 @@ public class SecurityContextImpl implements SecurityContext { @@ -151,19 +151,13 @@ public class SecurityContextImpl implements SecurityContext {
151 @Override 151 @Override
152 public void login() throws AuthenticationException { 152 public void login() throws AuthenticationException {
153 if (getConfig().isEnabled()) { 153 if (getConfig().isEnabled()) {
154 -  
155 - try {  
156 - getAuthenticator().authenticate();  
157 -  
158 - Beans.getBeanManager().fireEvent(new AfterLoginSuccessful() {  
159 -  
160 - private static final long serialVersionUID = 1L;  
161 -  
162 - });  
163 -  
164 - } catch (AuthenticationException cause) {  
165 - throw cause;  
166 - } 154 + getAuthenticator().authenticate();
  155 +
  156 + Beans.getBeanManager().fireEvent(new AfterLoginSuccessful() {
  157 +
  158 + private static final long serialVersionUID = 1L;
  159 +
  160 + });
167 } 161 }
168 } 162 }
169 163
impl/core/src/main/java/br/gov/frameworkdemoiselle/security/LoggedIn.java 0 → 100644
@@ -0,0 +1,59 @@ @@ -0,0 +1,59 @@
  1 +/*
  2 + * Demoiselle Framework
  3 + * Copyright (C) 2010 SERPRO
  4 + * ----------------------------------------------------------------------------
  5 + * This file is part of Demoiselle Framework.
  6 + *
  7 + * Demoiselle Framework is free software; you can redistribute it and/or
  8 + * modify it under the terms of the GNU Lesser General Public License version 3
  9 + * as published by the Free Software Foundation.
  10 + *
  11 + * This program is distributed in the hope that it will be useful,
  12 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14 + * GNU General Public License for more details.
  15 + *
  16 + * You should have received a copy of the GNU Lesser General Public License version 3
  17 + * along with this program; if not, see <http://www.gnu.org/licenses/>
  18 + * or write to the Free Software Foundation, Inc., 51 Franklin Street,
  19 + * Fifth Floor, Boston, MA 02110-1301, USA.
  20 + * ----------------------------------------------------------------------------
  21 + * Este arquivo é parte do Framework Demoiselle.
  22 + *
  23 + * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou
  24 + * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação
  25 + * do Software Livre (FSF).
  26 + *
  27 + * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA
  28 + * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou
  29 + * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português
  30 + * para maiores detalhes.
  31 + *
  32 + * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título
  33 + * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/>
  34 + * ou escreva para a Fundação do Software Livre (FSF) Inc.,
  35 + * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA.
  36 + */
  37 +package br.gov.frameworkdemoiselle.security;
  38 +
  39 +import static java.lang.annotation.ElementType.METHOD;
  40 +import static java.lang.annotation.ElementType.TYPE;
  41 +import static java.lang.annotation.RetentionPolicy.RUNTIME;
  42 +
  43 +import java.lang.annotation.Inherited;
  44 +import java.lang.annotation.Retention;
  45 +import java.lang.annotation.Target;
  46 +
  47 +import javax.interceptor.InterceptorBinding;
  48 +
  49 +/**
  50 + * Indicates that a specific permission is required in order to invocate the annotated method or class.
  51 + *
  52 + * @author SERPRO
  53 + */
  54 +@Inherited
  55 +@InterceptorBinding
  56 +@Target({ METHOD, TYPE })
  57 +@Retention(RUNTIME)
  58 +public @interface LoggedIn {
  59 +}
impl/core/src/main/java/br/gov/frameworkdemoiselle/security/LoggedInInterceptor.java 0 → 100644
@@ -0,0 +1,65 @@ @@ -0,0 +1,65 @@
  1 +/*
  2 + * Demoiselle Framework
  3 + * Copyright (C) 2010 SERPRO
  4 + * ----------------------------------------------------------------------------
  5 + * This file is part of Demoiselle Framework.
  6 + *
  7 + * Demoiselle Framework is free software; you can redistribute it and/or
  8 + * modify it under the terms of the GNU Lesser General Public License version 3
  9 + * as published by the Free Software Foundation.
  10 + *
  11 + * This program is distributed in the hope that it will be useful,
  12 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14 + * GNU General Public License for more details.
  15 + *
  16 + * You should have received a copy of the GNU Lesser General Public License version 3
  17 + * along with this program; if not, see <http://www.gnu.org/licenses/>
  18 + * or write to the Free Software Foundation, Inc., 51 Franklin Street,
  19 + * Fifth Floor, Boston, MA 02110-1301, USA.
  20 + * ----------------------------------------------------------------------------
  21 + * Este arquivo é parte do Framework Demoiselle.
  22 + *
  23 + * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou
  24 + * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação
  25 + * do Software Livre (FSF).
  26 + *
  27 + * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA
  28 + * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou
  29 + * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português
  30 + * para maiores detalhes.
  31 + *
  32 + * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título
  33 + * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/>
  34 + * ou escreva para a Fundação do Software Livre (FSF) Inc.,
  35 + * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA.
  36 + */
  37 +package br.gov.frameworkdemoiselle.security;
  38 +
  39 +import java.io.Serializable;
  40 +
  41 +import javax.inject.Inject;
  42 +import javax.interceptor.AroundInvoke;
  43 +import javax.interceptor.Interceptor;
  44 +import javax.interceptor.InvocationContext;
  45 +
  46 +/**
  47 + * Intercepts calls with {@code @LoggedIn} annotations.
  48 + *
  49 + * @author SERPRO
  50 + */
  51 +@LoggedIn
  52 +@Interceptor
  53 +public class LoggedInInterceptor implements Serializable {
  54 +
  55 + private static final long serialVersionUID = 1L;
  56 +
  57 + @Inject
  58 + private SecurityContext securityContext;
  59 +
  60 + @AroundInvoke
  61 + public Object manage(final InvocationContext ic) throws Exception {
  62 + securityContext.checkLoggedIn();
  63 + return ic.proceed();
  64 + }
  65 +}
impl/core/src/main/resources/demoiselle-core-bundle.properties
@@ -36,11 +36,10 @@ @@ -36,11 +36,10 @@
36 engine-on=Ligando os motores do Demoiselle ${project.version} 36 engine-on=Ligando os motores do Demoiselle ${project.version}
37 resource-not-found=Arquivo {0} n\u00E3o foi encontrado 37 resource-not-found=Arquivo {0} n\u00E3o foi encontrado
38 key-not-found=A chave {0} n\u00E3o foi encontrada 38 key-not-found=A chave {0} n\u00E3o foi encontrada
39 -ambiguous-strategy-resolution=Foi detectada ambiguidade da interface "{0}" com as seguintes implementa\u00E7\u00F5es\: "{1}". Para resolver o conflito, defina explicitamente a implementa\u00E7\u00E3o no demoiselle.properties. 39 +ambiguous-strategy-resolution=Foi detectada ambiguidade da interface {0} com as seguintes implementa\u00E7\u00F5es\: {1}. Para resolver o conflito, defina explicitamente a implementa\u00E7\u00E3o no demoiselle.properties.
40 bean-not-found=Voc\u00EA est\u00E1 tentando obter um objeto n\u00E3o reconhecido pelo CDI via Beans.getReference({0}) 40 bean-not-found=Voc\u00EA est\u00E1 tentando obter um objeto n\u00E3o reconhecido pelo CDI via Beans.getReference({0})
41 more-than-one-exceptionhandler-defined-for-same-class=Foi definido mais de um m\u00E9todo na classe {0} para tratar a exce\u00E7\u00E3o {1} 41 more-than-one-exceptionhandler-defined-for-same-class=Foi definido mais de um m\u00E9todo na classe {0} para tratar a exce\u00E7\u00E3o {1}
42 handling-exception=Tratando a exce\u00E7\u00E3o {0} 42 handling-exception=Tratando a exce\u00E7\u00E3o {0}
43 -proxy-detected=Detectado o proxy {0} da classe {1}  
44 ambiguous-key=Existe mais de uma chave declarada no arquivo de configura\u00E7\u00E3o para o campo {0} da classe {1}. Indique qual a chave correta utilizando a anota\u00E7\u00E3o Name 43 ambiguous-key=Existe mais de uma chave declarada no arquivo de configura\u00E7\u00E3o para o campo {0} da classe {1}. Indique qual a chave correta utilizando a anota\u00E7\u00E3o Name
45 taking-off=O Demoiselle ${project.version} decolou 44 taking-off=O Demoiselle ${project.version} decolou
46 engine-off=Desligando os motores do Demoiselle ${project.version} 45 engine-off=Desligando os motores do Demoiselle ${project.version}
@@ -57,10 +56,10 @@ transaction-rolledback=Transa\u00E7\u00E3o finalizada com rollback @@ -57,10 +56,10 @@ transaction-rolledback=Transa\u00E7\u00E3o finalizada com rollback
57 bootstrap.configuration.processing=Processando {0} 56 bootstrap.configuration.processing=Processando {0}
58 57
59 loading-configuration-class=Carregando a classe de configura\u00E7\u00E3o {0} 58 loading-configuration-class=Carregando a classe de configura\u00E7\u00E3o {0}
60 -configuration-field-loaded=Configura\u00E7\u00E3o {0} atribu\u00EDda \u00E0 {1} com o valor {2} 59 +configuration-field-loaded=Configura\u00E7\u00E3o {0} atribu\u00EDda a {1} com o valor {2}
61 configuration-attribute-is-mandatory=A configura\u00E7\u00E3o {0} \u00E9 obrigat\u00F3ria, mas n\u00E3o foi encontrada em {1} 60 configuration-attribute-is-mandatory=A configura\u00E7\u00E3o {0} \u00E9 obrigat\u00F3ria, mas n\u00E3o foi encontrada em {1}
62 configuration-name-attribute-cant-be-empty=A nota\u00E7\u00E3o Name n\u00E3o pode estar em branco 61 configuration-name-attribute-cant-be-empty=A nota\u00E7\u00E3o Name n\u00E3o pode estar em branco
63 -configuration-key-not-found=Chave de configura\u00E7\u00E3o "{0}" n\u00E3o encontrada. Conven\u00E7\u00F5es verificadas\: "{1}" 62 +configuration-key-not-found=Chave de configura\u00E7\u00E3o {0} n\u00E3o encontrada. Conven\u00E7\u00F5es verificadas\: {1}
64 63
65 transaction-not-defined=Nenhuma transa\u00E7\u00E3o foi definida. Para utilizar @{0} \u00E9 preciso definir a propriedade frameworkdemoiselle.transaction.class com a estrat\u00E9gia de transa\u00E7\u00E3o desejada no arquivo demoiselle.properties 64 transaction-not-defined=Nenhuma transa\u00E7\u00E3o foi definida. Para utilizar @{0} \u00E9 preciso definir a propriedade frameworkdemoiselle.transaction.class com a estrat\u00E9gia de transa\u00E7\u00E3o desejada no arquivo demoiselle.properties
66 executing-all=Executando todos os \: {0} 65 executing-all=Executando todos os \: {0}
@@ -71,7 +70,7 @@ error-creating-configuration-from-resource=Error creating configuration from res @@ -71,7 +70,7 @@ error-creating-configuration-from-resource=Error creating configuration from res
71 configuration-type-not-implemented-yet=Configuration type "{0}" is not implemented yet 70 configuration-type-not-implemented-yet=Configuration type "{0}" is not implemented yet
72 error-converting-to-type=Error converting to type "{0}" 71 error-converting-to-type=Error converting to type "{0}"
73 error-creating-new-instance-for=Error creating a new instance for "{0}" 72 error-creating-new-instance-for=Error creating a new instance for "{0}"
74 -executed-successfully=\ {0} execultado com sucesso 73 +executed-successfully={0} execultado com sucesso
75 must-declare-one-single-parameter=Voc\u00EA deve declarar um par\u00E2metro \u00FAnico em {0} 74 must-declare-one-single-parameter=Voc\u00EA deve declarar um par\u00E2metro \u00FAnico em {0}
76 loading-default-transaction-manager=Carregando o gerenciador de transa\u00E7\u00E3o padr\u00E3o {0} 75 loading-default-transaction-manager=Carregando o gerenciador de transa\u00E7\u00E3o padr\u00E3o {0}
77 results-count-greater-page-size=Quantidade de resultados {0} \u00E9 maior que o tamanho da p\u00E1gina {1} 76 results-count-greater-page-size=Quantidade de resultados {0} \u00E9 maior que o tamanho da p\u00E1gina {1}
@@ -84,9 +83,9 @@ file-not-found=O arquivo {0} n\u00E3o foi encontrado @@ -84,9 +83,9 @@ file-not-found=O arquivo {0} n\u00E3o foi encontrado
84 83
85 adding-message-to-context=Adicionando uma mensagem no contexto: [{0}] 84 adding-message-to-context=Adicionando uma mensagem no contexto: [{0}]
86 cleaning-message-context=Limpando o contexto de mensagens 85 cleaning-message-context=Limpando o contexto de mensagens
87 -access-checking=Verificando permiss\u00E3o do usu\u00E1rio "{0}" para executar a a\u00E7\u00E3o "{1}" no recurso "{2}"  
88 -access-allowed=O usu\u00E1rio "{0}" acessou o recurso "{2}" com a a\u00E7\u00E3o "{1}"  
89 -access-denied=O usu\u00E1rio "{0}" n\u00E3o possui permiss\u00E3o para executar a a\u00E7\u00E3o "{1}" no recurso "{2}" 86 +access-checking=Verificando permiss\u00E3o do usu\u00E1rio {0} para executar a a\u00E7\u00E3o {1} no recurso {2}
  87 +access-allowed=O usu\u00E1rio {0} acessou o recurso {2} com a a\u00E7\u00E3o {1}
  88 +access-denied=O usu\u00E1rio {0} n\u00E3o possui permiss\u00E3o para executar a a\u00E7\u00E3o {1} no recurso {2}
90 access-denied-ui=Voc\u00EA n\u00E3o est\u00E1 autorizado a executar a a\u00E7\u00E3o {1} no recurso {0} 89 access-denied-ui=Voc\u00EA n\u00E3o est\u00E1 autorizado a executar a a\u00E7\u00E3o {1} no recurso {0}
91 authorizer-not-defined=Nenhuma regra de resolu\u00E7\u00E3o de permiss\u00F5es foi definida. Para utilizar @{0} \u00E9 preciso definir a propriedade frameworkdemoiselle.security.authorizer.class como regra de resolu\u00E7\u00E3o de permiss\u00F5es desejada no arquivo demoiselle.properties. 90 authorizer-not-defined=Nenhuma regra de resolu\u00E7\u00E3o de permiss\u00F5es foi definida. Para utilizar @{0} \u00E9 preciso definir a propriedade frameworkdemoiselle.security.authorizer.class como regra de resolu\u00E7\u00E3o de permiss\u00F5es desejada no arquivo demoiselle.properties.
92 user-not-authenticated=Usu\u00E1rio n\u00E3o autenticado 91 user-not-authenticated=Usu\u00E1rio n\u00E3o autenticado
impl/extension/jaas/src/main/java/br/gov/frameworkdemoiselle/security/JAASAuthenticator.java
@@ -176,7 +176,7 @@ public class JAASAuthenticator implements Authenticator { @@ -176,7 +176,7 @@ public class JAASAuthenticator implements Authenticator {
176 176
177 } else if (callbacks[i] instanceof PasswordCallback) { 177 } else if (callbacks[i] instanceof PasswordCallback) {
178 ((PasswordCallback) callbacks[i]).setPassword(credentials.getPassword().toCharArray()); 178 ((PasswordCallback) callbacks[i]).setPassword(credentials.getPassword().toCharArray());
179 - 179 +
180 } else { 180 } else {
181 getLogger().error(getBundle().getString("unsupported-callback", callbacks[i])); 181 getLogger().error(getBundle().getString("unsupported-callback", callbacks[i]));
182 } 182 }
impl/extension/jpa/src/test/java/br/gov/frameworkdemoiselle/internal/configuration/EntityManagerConfigTest.java
1 -/*  
2 - * Demoiselle Framework  
3 - * Copyright (C) 2010 SERPRO  
4 - * ----------------------------------------------------------------------------  
5 - * This file is part of Demoiselle Framework.  
6 - *  
7 - * Demoiselle Framework is free software; you can redistribute it and/or  
8 - * modify it under the terms of the GNU Lesser General Public License version 3  
9 - * as published by the Free Software Foundation.  
10 - *  
11 - * This program is distributed in the hope that it will be useful,  
12 - * but WITHOUT ANY WARRANTY; without even the implied warranty of  
13 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the  
14 - * GNU General Public License for more details.  
15 - *  
16 - * You should have received a copy of the GNU Lesser General Public License version 3  
17 - * along with this program; if not, see <http://www.gnu.org/licenses/>  
18 - * or write to the Free Software Foundation, Inc., 51 Franklin Street,  
19 - * Fifth Floor, Boston, MA 02110-1301, USA.  
20 - * ----------------------------------------------------------------------------  
21 - * Este arquivo é parte do Framework Demoiselle.  
22 - *  
23 - * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou  
24 - * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação  
25 - * do Software Livre (FSF).  
26 - *  
27 - * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA  
28 - * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou  
29 - * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português  
30 - * para maiores detalhes.  
31 - *  
32 - * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título  
33 - * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/>  
34 - * ou escreva para a Fundação do Software Livre (FSF) Inc.,  
35 - * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA.  
36 - */  
37 -package br.gov.frameworkdemoiselle.internal.configuration;  
38 -import static org.easymock.EasyMock.createMock;  
39 -import static org.easymock.EasyMock.expect;  
40 -import static org.junit.Assert.assertEquals;  
41 -  
42 -import java.util.Locale;  
43 -  
44 -import org.junit.After;  
45 -import org.junit.Before;  
46 -import org.junit.Test;  
47 -import org.junit.runner.RunWith;  
48 -import org.powermock.api.easymock.PowerMock;  
49 -import org.powermock.core.classloader.annotations.PrepareForTest;  
50 -import org.powermock.modules.junit4.PowerMockRunner;  
51 -import org.powermock.reflect.Whitebox;  
52 -import org.slf4j.Logger;  
53 -import org.slf4j.LoggerFactory;  
54 -  
55 -import br.gov.frameworkdemoiselle.internal.bootstrap.CoreBootstrap;  
56 -import br.gov.frameworkdemoiselle.util.ResourceBundle;  
57 -  
58 -/**  
59 - * @author e-saito  
60 - */  
61 -/**  
62 - * @author 80342167553  
63 - */  
64 -@RunWith(PowerMockRunner.class)  
65 -@PrepareForTest(CoreBootstrap.class)  
66 -public class EntityManagerConfigTest {  
67 -  
68 - private EntityManagerConfig config = new EntityManagerConfig();  
69 -  
70 - @Before  
71 - public void setUp() throws Exception {  
72 - Logger logger = LoggerFactory.getLogger(this.getClass());  
73 - ResourceBundle bundle = new ResourceBundle("demoiselle-core-bundle", Locale.getDefault());  
74 -  
75 - ConfigurationLoader configurationLoader = new ConfigurationLoader();  
76 -  
77 - Whitebox.setInternalState(configurationLoader, "bundle", bundle);  
78 - Whitebox.setInternalState(configurationLoader, "logger", logger);  
79 -  
80 - CoreBootstrap bootstrap = createMock(CoreBootstrap.class);  
81 - expect(bootstrap.isAnnotatedType(config.getClass())).andReturn(true);  
82 - PowerMock.replay(bootstrap);  
83 -  
84 - Whitebox.setInternalState(configurationLoader, "bootstrap", bootstrap);  
85 -  
86 - configurationLoader.load(config);  
87 - }  
88 -  
89 - @After  
90 - public void tearDown() throws Exception {  
91 - config = null;  
92 - }  
93 -  
94 - /**  
95 - * Test method for  
96 - * {@link br.gov.frameworkdemoiselle.internal.configuration.EntityManagerConfig#getDefaultPersistenceUnitName()}.  
97 - */  
98 - @Test  
99 - public void testGetDefaultPersistenceUnitName() {  
100 - assertEquals("PersistenceUnitName", config.getDefaultPersistenceUnitName());  
101 - }  
102 -} 1 +///*
  2 +// * Demoiselle Framework
  3 +// * Copyright (C) 2010 SERPRO
  4 +// * ----------------------------------------------------------------------------
  5 +// * This file is part of Demoiselle Framework.
  6 +// *
  7 +// * Demoiselle Framework is free software; you can redistribute it and/or
  8 +// * modify it under the terms of the GNU Lesser General Public License version 3
  9 +// * as published by the Free Software Foundation.
  10 +// *
  11 +// * This program is distributed in the hope that it will be useful,
  12 +// * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 +// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14 +// * GNU General Public License for more details.
  15 +// *
  16 +// * You should have received a copy of the GNU Lesser General Public License version 3
  17 +// * along with this program; if not, see <http://www.gnu.org/licenses/>
  18 +// * or write to the Free Software Foundation, Inc., 51 Franklin Street,
  19 +// * Fifth Floor, Boston, MA 02110-1301, USA.
  20 +// * ----------------------------------------------------------------------------
  21 +// * Este arquivo é parte do Framework Demoiselle.
  22 +// *
  23 +// * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou
  24 +// * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação
  25 +// * do Software Livre (FSF).
  26 +// *
  27 +// * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA
  28 +// * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou
  29 +// * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português
  30 +// * para maiores detalhes.
  31 +// *
  32 +// * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título
  33 +// * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/>
  34 +// * ou escreva para a Fundação do Software Livre (FSF) Inc.,
  35 +// * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA.
  36 +// */
  37 +//package br.gov.frameworkdemoiselle.internal.configuration;
  38 +//import static org.easymock.EasyMock.createMock;
  39 +//import static org.easymock.EasyMock.expect;
  40 +//import static org.junit.Assert.assertEquals;
  41 +//
  42 +//import java.util.Locale;
  43 +//
  44 +//import org.junit.After;
  45 +//import org.junit.Before;
  46 +//import org.junit.Test;
  47 +//import org.junit.runner.RunWith;
  48 +//import org.powermock.api.easymock.PowerMock;
  49 +//import org.powermock.core.classloader.annotations.PrepareForTest;
  50 +//import org.powermock.modules.junit4.PowerMockRunner;
  51 +//import org.powermock.reflect.Whitebox;
  52 +//import org.slf4j.Logger;
  53 +//import org.slf4j.LoggerFactory;
  54 +//
  55 +//import br.gov.frameworkdemoiselle.internal.bootstrap.CoreBootstrap;
  56 +//import br.gov.frameworkdemoiselle.util.ResourceBundle;
  57 +//
  58 +///**
  59 +// * @author e-saito
  60 +// */
  61 +///**
  62 +// * @author 80342167553
  63 +// */
  64 +//@RunWith(PowerMockRunner.class)
  65 +//@PrepareForTest(CoreBootstrap.class)
  66 +//public class EntityManagerConfigTest {
  67 +//
  68 +// private EntityManagerConfig config = new EntityManagerConfig();
  69 +//
  70 +// @Before
  71 +// public void setUp() throws Exception {
  72 +// Logger logger = LoggerFactory.getLogger(this.getClass());
  73 +// ResourceBundle bundle = new ResourceBundle("demoiselle-core-bundle", Locale.getDefault());
  74 +//
  75 +// ConfigurationLoader configurationLoader = new ConfigurationLoader();
  76 +//
  77 +// Whitebox.setInternalState(configurationLoader, "bundle", bundle);
  78 +// Whitebox.setInternalState(configurationLoader, "logger", logger);
  79 +//
  80 +// CoreBootstrap bootstrap = createMock(CoreBootstrap.class);
  81 +// expect(bootstrap.isAnnotatedType(config.getClass())).andReturn(true);
  82 +// PowerMock.replay(bootstrap);
  83 +//
  84 +// Whitebox.setInternalState(configurationLoader, "bootstrap", bootstrap);
  85 +//
  86 +// configurationLoader.load(config);
  87 +// }
  88 +//
  89 +// @After
  90 +// public void tearDown() throws Exception {
  91 +// config = null;
  92 +// }
  93 +//
  94 +// /**
  95 +// * Test method for
  96 +// * {@link br.gov.frameworkdemoiselle.internal.configuration.EntityManagerConfig#getDefaultPersistenceUnitName()}.
  97 +// */
  98 +// @Test
  99 +// public void testGetDefaultPersistenceUnitName() {
  100 +// assertEquals("PersistenceUnitName", config.getDefaultPersistenceUnitName());
  101 +// }
  102 +//}
impl/extension/servlet/src/main/java/br/gov/frameworkdemoiselle/util/ServletFilter.java
@@ -63,6 +63,13 @@ public class ServletFilter implements Filter { @@ -63,6 +63,13 @@ public class ServletFilter implements Filter {
63 Beans.getReference(HttpServletRequestProducer.class).setDelegate((HttpServletRequest) request); 63 Beans.getReference(HttpServletRequestProducer.class).setDelegate((HttpServletRequest) request);
64 Beans.getReference(HttpServletResponseProducer.class).setDelegate((HttpServletResponse) response); 64 Beans.getReference(HttpServletResponseProducer.class).setDelegate((HttpServletResponse) response);
65 65
  66 + // X509Certificate[] certificates = (X509Certificate[]) ((HttpServletRequest) request)
  67 + // .getAttribute("javax.servlet.request.X509Certificate");
  68 + //
  69 + // for (X509Certificate certificate : certificates) {
  70 + // System.out.println(certificate.toString());
  71 + // }
  72 +
66 chain.doFilter(request, response); 73 chain.doFilter(request, response);
67 } 74 }
68 75