1월, 2019의 게시물 표시

[JPA] findById vs getOne

findById는 호출 즉시 object 로딩됨. getOne은 호출시 해당 object의 proxy만 가짐. // user object가 바로 로딩됨. User user = userRepository . findById ( 1L ); // user object는 proxy 객체임. User user = userRepository . getOne ( 1L ); ps) findOne은 findById로 대체됨.

[Java] RSA in Java Example

Java encryption / decryption sample code import javax.crypto.BadPaddingException ; import javax.crypto.Cipher ; import javax.crypto.IllegalBlockSizeException ; import javax.crypto.NoSuchPaddingException ; import java.security.* ; import java.security.spec.InvalidKeySpecException ; import java.security.spec.PKCS8EncodedKeySpec ; import java.security.spec.X509EncodedKeySpec ; import java.util.Base64 ; public class RSAUtil { private static String publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCgFGVfrY4jQSoZQWWygZ83roKXWD4YeT2x2p41dGkPixe73rT2IW04glagN2vgoZoHuOPqa5and6kAmK2ujmCHu6D1auJhE2tXP+yLkpSiYMQucDKmCsWMnW9XlC5K7OSL77TXXcfvTvyZcjObEz6LIBRzs6+FqpFbUO9SJEfh6wIDAQAB" ; private static String privateKey = "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAKAUZV+tjiNBKhlBZbKBnzeugpdYPhh5PbHanjV0aQ+LF7vetPYhbTiCVqA3a+Chmge44+prlqd3qQCYra6OYIe7oPVq4mETa1c/7IuSlKJgxC5wMqYKxYydb1eULkrs5IvvtNddx+9O/JlyM5sTPosgFHOzr4WqkVtQ71IkR+HrA

[Java] Private Key Signing - Public Key Verifying

Private key 서명과 이를 public key로 인증하는 Java 예제 1. data 생성 2. private key signing 3. public key verify KeyPairGenerator keyGen = KeyPairGenerator . getInstance ( "RSA" ); keyGen . initialize ( 2048 ); KeyPair keyPair = keyGen . generateKeyPair (); PublicKey publicKey = keyPair . getPublic (); PrivateKey privateKey = keyPair . getPrivate (); // create a data byte [] data = new byte [ 10000 ]; ThreadLocalRandom . current (). nextBytes ( data ); // sign using the private key Signature sig = Signature . getInstance ( "SHA256withRSA" ); sig . initSign ( privateKey ); sig . update ( data ); byte [] signature = sig . sign (); // verify signature using the public key sig . initVerify ( publicKey ); sig . update ( data ); boolean keyPairMatches = sig . verify ( signature );

[Mockito] Argument Matchers – any(), eq()

Mockito는 mock 오브젝트를 생성하거나, behavior 테스트 케이스를 작성할 수 있는 stub을 생성 할 수 있도록 해 준다. 일반적으로는 behavior 테스트 mock을 생성할때  when()  과  thenReturn()  을 사용 한다. Table of Contents  [ hide ] 1  Mockito Argument Matchers – any() 2  Mockito Argument Matcher – eq() 3  Mockito AdditionalMatchers 4  Mockito Verify Argument Matchers 5  Summary Mockito Argument Matchers – any() 이따금, behavior mock을 작성할때 함수의 argument type으로 아무 type이나 주고 싶을 때가 있는데 이럴때 argument matchers를 사용하면 될것이다. Mockito argument methods 는  org.mockito.ArgumentMatchers 클래스에 static method로 정의 되어 있다. 아래 method들이 있을 때, class Foo { boolean bool (String str, int i, Object obj) { return false ; } int in ( boolean b, List<String> strs) { return 0 ; } int bar ( byte [] bytes, String[] s, int i) { return 0 ; } } arguments를 generic 하게 쓰기 위해 아래처럼 mockito argument matchers를 사용할 수 있다. 주의할 점은 matchers를 사용하게 되면 모든 argument에 다 쓰던지 아니면 안쓰던지 해야지 argument 몇개만 사용하게 되면 에러가 발생한다. All or Nothing~~. Foo mockFoo