sábado, 17 de septiembre de 2011

PHP: PKI encryption tutorial

Solution

  1. Generate a self-signed certificate issuing the following command in a linux terminal:

    openssl req -x509 -days 730 -newkey rsa:2048 -keyout privateKey.pem -nodes -out certificate.pem
  2. Place both files privateKey.pem and certificate.pem in the root of your webserver (docroot)
  3. Enable PHP OpenSSL extension
  4. Create the following PHP file
$sensitiveData = 'text to cypher';
echo 'Sensitive data is: ' . $sensitiveData . '
';

//load certificate containing public key for encryption
$pubKey = openssl_pkey_get_public('file:///certificate.pem');
openssl_public_encrypt($sensitiveData, $encryptedData, $pubKey);
echo 'Encrypted data is: ' . $encryptedData . '
';

//load private key for decryption
$privateKey = openssl_pkey_get_private('file:///privateKey.pem');
openssl_private_decrypt($encryptedData, $sensitiveData, $privateKey);
echo 'Sensitive decrypted data is: ' . $sensitiveData . '
';

?>

You should now see an output similar to the following:

Sensitive data is: text to cypher
Encrypted data is: 2äÙdÆÁÕYÄ:6ÈÓnñ¬þ–ëëZW »†vÑÜùǤ¿9›øÞr[ÃâÐ$Z„Ÿ–NžRõÜBTåIùr]»o£¹ÉYr<ËúètÊÿø jÀîFÒSyýAáy@5'ÝËð(’;×3µ 9faH<ê¼ì/‰cê¶«¶§)qÊóú|ì³Ö^Š,ùø[-ö¢§idÕ_=d·}ò°xÄŽŽ æ1±† è O ÉÀZQìùx|WÀ0 î9QÍ‚aÉIÑ e³]/v‹/5¬÷È€NrL{–=…0µ–Æ+KÈ;ÙthÛä}Lö¼ÖB“ß<ßÝ(ÁÁ0-”
Sensitive decrypted data is: text to cypher

viernes, 2 de septiembre de 2011

Java: call parent method from overriden method

If you are coding method: "myOverridenMethod()" and want to call it's parent implementation.

Solution:
  1. Insert the following line: super.myOverridenMethod()

IntelliJ IDEA: the maximum heap size (-Xmx) might be too large

If you happen to start IntelliJ IDEA, and you see a message box stating the following:

"the maximum heap size (-Xmx) might be too large"

Solution:
  1. Go to IntelliJ IDEA instalation dir\bin (in my case: C:\Program Files (x86)\JetBrains\IntelliJ IDEA 10.5\bin)
  2. Open and Edit the file: idea.exe.vmoptions
  3. Lower the value of the entry: -Xmx2048m  (in my case i lowered the value to : -Xmx1024m)

lunes, 29 de agosto de 2011

Java: convert double to int

References:
  • http://forum.java.sun.com/thread.jspa?threadID=609720
Solution:
To convert a double to int, always rounding down, you need to do the following:
int d = (int) x;

or an alternative method

int d = (int) Math.floor(x);

For example, if x was 2.75, with this method d would be 2. We can think about it as if the decimal digits were taken away.

viernes, 26 de agosto de 2011

miércoles, 24 de agosto de 2011

org.hibernate.PropertyAccessException: could not get a field value by reflection getter of com.paytrue.common.rules.booleanRules.load.RuleGroupCollect

Environment:
  • JBOSS
  • Hibernate
Exception:

2011-08-24 11:35:30 [1521] AcquirerDeterminerSvcBean [ERROR] javax.ejb.FinderException: org.hibernate.PropertyAccessException: could not get a field value by reflection getter of com.paytrue.common.rules.booleanRules.load.RuleGroupCollectionBean.ruleGroupCollectionID
at com.paytrue.common.rules.booleanRules.load.RuleGroupLocalHomeBean.findByIdRuleGroupCollection(RuleGroupLocalHomeBean.java:59)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocation.java:122)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:111)
at org.jboss.ejb3.EJBContainerInvocationWrapper.invokeNext(EJBContainerInvocationWrapper.java:69)
at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.invoke(InterceptorSequencer.java:73)
at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.aroundInvoke(InterceptorSequencer.java:59)
at sun.reflect.GeneratedMethodAccessor478.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.aop.advice.PerJoinpointAdvice.invoke(PerJoinpointAdvice.java:174)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.fillMethod(InvocationContextInterceptor.java:72)
at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_fillMethod_2055496604.invoke(InvocationContextInterceptor_z_fillMethod_2055496604.java)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.setup(InvocationContextInterceptor.java:88)
at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_setup_2055496604.invoke(InvocationContextInterceptor_z_setup_2055496604.java)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:62)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:56)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:68)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126)
at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:194)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.security.RoleBasedAuthorizationInterceptorv2.invoke(RoleBasedAuthorizationInterceptorv2.java:201)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke(Ejb3AuthenticationInterceptorv2.java:186)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:41)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.BlockContainerShutdownInterceptor.invoke(BlockContainerShutdownInterceptor.java:67)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke(CurrentInvocationInterceptor.java:67)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContainer.java:176)
at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContainer.java:216)
at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:207)
at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:164)
at $Proxy1086.findByIdRuleGroupCollection(Unknown Source)
at com.paytrue.common.rules.booleanRules.BooleanRuleServerBean.evaluateAllByRuleType(BooleanRuleServerBean.java:400)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocation.java:122)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:111)
at org.jboss.ejb3.EJBContainerInvocationWrapper.invokeNext(EJBContainerInvocationWrapper.java:69)
at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.invoke(InterceptorSequencer.java:73)
at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.aroundInvoke(InterceptorSequencer.java:59)
at sun.reflect.GeneratedMethodAccessor478.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.aop.advice.PerJoinpointAdvice.invoke(PerJoinpointAdvice.java:174)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.fillMethod(InvocationContextInterceptor.java:72)
at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_fillMethod_2055496604.invoke(InvocationContextInterceptor_z_fillMethod_2055496604.java)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.setup(InvocationContextInterceptor.java:88)
at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_setup_2055496604.invoke(InvocationContextInterceptor_z_setup_2055496604.java)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:62)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:56)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:68)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)

Solution:
  1. Corrected a EJB Query in RuleGroupBean that was binding the parameter :ruleGroupCollectionID (Integer) to a local field in RuleGroupBean which was a Collection of RuleGroupCollectionBeans