Default

기본 룰셋

1. RestrictSynchronizedRule

모든 클래스에서 synchronized 를 사용 할 수 없습니다.

1 .우선순위: High

2 .심각도: 에러

3 .예시

                올바르지 못한 예)
                static {
                    Object obj = new Object();

                    synchronized (obj) {

                    }
                }

                synchronized public String test() {
                    Object obj = new Object();

                    synchronized(obj) {

                    }

                    return "";
                }

                synchronized public static String test2() {
                    Object obj = new Object();

                    synchronized (obj) {

                    }

                    return "";
                }

2. RestrictPackageUseRule

패키지에 포함된 클래스의 인스턴스 생성을 제한합니다. 단, 제한된 인스턴스 생성을 허용하는 패키지, 클래스는 예외로 합니다.

1 .우선순위: High

2 .심각도: 에러

3 .예시

4 .옵션

속성

restrict.packages

기본값

설명

인스턴스 생성을 제약할 패키지 목록을 설정합니다.

* 적용 룰 : RestrictPackageUseRule

속성

allowed.packages.to.use.restrict.package

기본값

설명

사용 제약 패키지를 허용하는 패키지 목록을 설정합니다.

허용하는 패키지는 {제약하는 패키지 이름}:{패키지 이름1};{패키지 이름2} 형식으로 등록해야 합니다.

* 적용 룰 : RestrictPackageUseRule

속성

allowed.classes.to.use.restrict.package

기본값

설명

사용 제약 패키지를 허용하는 클래스 목록을 설정합니다.

허용하는 클래스는 {제약하는 패키지 이름}:{클래스 이름1};{클래스 이름2} 형식으로 등록해야 합니다.

* 적용 룰 : RestrictPackageUseRule

3. RestrictMethodUseRule

메소드 호출을 제한합니다. 단, 제한된 메소드 호출을 허용하는 패키지, 클래스는 예외로 합니다.

1 .우선순위: High

2 .심각도: 에러

3 .예시

4 .옵션

속성

restrict.methods

기본값

설명

사용 금지 메소드 목록을 설정합니다.

메소드를 등록 할 때, 해당 메소드와 파라메터의 이름(Fully Qualified Name)를 작성해야합니다.

* 적용 룰 : RestrictMethodUseRule

속성

allowed.packages.to.use.restrict.method

기본값

설명

사용 제약 메소드를 허용하는 패키지 목록을 설정합니다.

허용하는 패키지는 {메소드 이름}:{패키지 이름1};{패키지 이름2} 형식으로 등록해야 합니다.

메소드 이름은 해당 메소드와 파라메터의 이름(Fully Qualified Name)를 작성해야합니다.

* 적용 룰 : RestrictMethodUseRule

속성

allowed.classes.to.use.restrict.method

기본값

설명

사용 금지 메소드를 허용하는 클래스 목록을 설정합니다.

허용하는 클래스는 {메소드 이름}:{클래스 이름1};{클래스 이름2} 형식으로 등록해야 합니다.

메소드 이름은 해당 메소드와 파라메터의 이름(Fully Qualified Name)를 작성해야합니다.

* 적용 룰 : RestrictMethodUseRule

4. RestrictClassUseRule

클래스 인스턴스 생성을 제한합니다. 단, 제한된 인스턴스 생성을 허용하는 패키지, 클래스는 예외로 합니다.

1 .우선순위: High

2 .심각도: 에러

3 .예시

4 .옵션

속성

restrict.classes

기본값

설명

인스턴스 생성을 제약할 클래스 목록을 설정합니다.

* 적용 룰 : RestrictClassUseRule

속성

allowed.packages.to.use.restrict.class

기본값

설명

사용 제약 클래스를 허용하는 패키지 목록을 설정합니다. 허용하는 패키지는 {제약하는 클래스 이름}:{패키지 이름1};{패키지 이름2} 형식으로 등록해야 합니다.

* 적용 룰 : RestrictClassUseRule

속성

allowed.classes.to.use.restrict.class

기본값

설명

사용 제약 클래스를 허용하는 클래스 목록을 설정합니다. 허용하는 클래스는 {제약하는 클래스 이름}:{클래스 이름1};{클래스 이름2} 형식으로 등록해야 합니다.

* 적용 룰 : RestrictClassUseRule

5. BigDecimalInitializationRule

다음 값으로 BigDecimal을 초기화할 수 없습니다. - double, float, java.lang.Double, java.lang.Float

1 .우선순위: High

2 .심각도: 에러

3 .예시

                올바르지 못한 예)
                double d = 5.f;
                BigDecimal bdd = new BigDecimal(d);

                float f = 5f;
                BigDecimal bdf = new BigDecimal(f);

                Double du = Double.valueOf(d);
                BigDecimal bddu = new BigDecimal(du);

                Float ft = Float.valueOf(f);
                BigDecimal bdFt = new BigDecimal(ft);

6. BigIntegerInitializationRule

BigInteger를 사용 할 수 없습니다.

1 .우선순위: High

2 .심각도: 에러

3 .예시

                올바르지 못한 예)
                BigInteger b1 = new BigInteger("1000000000".getBytes());
                BigInteger b2 = new BigInteger("10");
                BigInteger b3 = new BigInteger(100, "100".getBytes());
                BigInteger b4 = new BigInteger(1000, new Random());
                BigInteger b5 = new BigInteger("100000", 1);

7. StringConcatenationInLoggerRule

Logging에는 저성능이 발생할 수 있는 'String connection(예: "a"+"b")이 포함하는 경우 검출합니다.

1 .우선순위: High

2 .심각도: 에러

3 .예시

                올바른 예)
                logger.info("ab");

                올바르지 못한 예)
                logger.info("a" + "b");

4 .옵션

속성

logger.name

기본값

org.slf4j.Logger

설명

멤버 변수에 Logger 클래스가 있을 경우, 인스펙션에서 스킵합니다.

8. ClassNotFoundRule

클래스패스에 클래스가 없을 경우 검증합니다.

1 .우선순위: High

2 .심각도: 에러

3 .예시

Copyright© Bankwareglobal All Rights Reserved.