mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Jean-Noel Rouvignac
08.06.2015 b8c6b80da1cb6118167a934daa480eb381c59e0e
opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/SSF.java
@@ -78,37 +78,46 @@
     *         context evaluation.
     */
    public EnumEvalResult evaluate(AciEvalContext evalCtx) {
        EnumEvalResult matched=EnumEvalResult.FALSE;
        int currentSSF = evalCtx.getCurrentSSF();
        switch (type) {
        case EQUAL_BINDRULE_TYPE:
        case NOT_EQUAL_BINDRULE_TYPE:
            if (currentSSF == ssf)
                matched=EnumEvalResult.TRUE;
            break;
        case LESS_OR_EQUAL_BINDRULE_TYPE:
            if (currentSSF <= ssf)
                matched=EnumEvalResult.TRUE;
            break;
        case LESS_BINDRULE_TYPE:
            if (currentSSF < ssf)
                matched=EnumEvalResult.TRUE;
            break;
        case GREATER_OR_EQUAL_BINDRULE_TYPE:
            if (currentSSF >= ssf)
                matched=EnumEvalResult.TRUE;
            break;
        case GREATER_BINDRULE_TYPE:
            if (currentSSF > ssf)
                matched=EnumEvalResult.TRUE;
        }
        EnumEvalResult matched = getMatched(currentSSF);
        return matched.getRet(type, false);
    }
    private EnumEvalResult getMatched(int currentSSF) {
      switch (type) {
      case EQUAL_BINDRULE_TYPE:
      case NOT_EQUAL_BINDRULE_TYPE:
          if (currentSSF == ssf) {
            return EnumEvalResult.TRUE;
          }
          break;
      case LESS_OR_EQUAL_BINDRULE_TYPE:
          if (currentSSF <= ssf) {
            return EnumEvalResult.TRUE;
          }
          break;
      case LESS_BINDRULE_TYPE:
          if (currentSSF < ssf) {
            return EnumEvalResult.TRUE;
          }
          break;
      case GREATER_OR_EQUAL_BINDRULE_TYPE:
          if (currentSSF >= ssf) {
            return EnumEvalResult.TRUE;
          }
          break;
      case GREATER_BINDRULE_TYPE:
          if (currentSSF > ssf) {
            return EnumEvalResult.TRUE;
          }
      }
      return EnumEvalResult.FALSE;
    }
    /** {@inheritDoc} */
    @Override
    public String toString()