<!--
  ~ Copyright (c) 2020, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
  ~
  ~ WSO2 Inc. licenses this file to you under the Apache License,
  ~ Version 2.0 (the "License"); you may not use this file except
  ~ in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~ http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied.  See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License.
  -->

<FindBugsFilter>
    <Match>
        <Bug pattern="CRLF_INJECTION_LOGS" />
    </Match>
    <Match>
        <Bug pattern="FORMAT_STRING_MANIPULATION" />
    </Match>
    <Match>
        <Bug pattern="JAXRS_ENDPOINT" />
    </Match>
    <!-- Excluded since this bug is fixed in Java 8+ versions :
    https://find-sec-bugs.github.io/bugs.htm#WEAK_FILENAMEUTILS -->
    <Match>
        <Bug pattern="WEAK_FILENAMEUTILS" />
    </Match>
    <FindBugsFilter>
        <Match>
            <Class name="org.wso2.carbon.identity.api.server.application.management.common.ApplicationManagementConstants" />
            <Bug pattern="HARD_CODE_PASSWORD" />
        </Match>
    </FindBugsFilter>
    <FindBugsFilter>
        <Match>
            <Class name="org.wso2.carbon.identity.api.server.keystore.management.v1.core.KeyStoreService" />
            <Bug pattern="PATH_TRAVERSAL_IN" />
        </Match>
    </FindBugsFilter>
    <!-- Excluded since false positive. -->
    <FindBugsFilter>
        <Match>
            <Class name="org.wso2.carbon.identity.api.server.configs.common.SchemaConfigParser" />
            <Bug pattern="PATH_TRAVERSAL_IN" />
        </Match>
    </FindBugsFilter>
    <FindBugsFilter>
        <Match>
            <Class name="org.wso2.carbon.identity.rest.api.server.challenge.v1.core.ServerChallengeService" />
            <Method name="patchChallengeSet" />
            <Bug pattern="IMPROPER_UNICODE" />
        </Match>
    </FindBugsFilter>
    <FindBugsFilter>
        <Match>
            <Class name="org.wso2.carbon.identity.api.server.application.management.v1.core.functions.application.ServiceProviderToApiModel" />
            <Method name="isResidentSp" />
            <Bug pattern="IMPROPER_UNICODE" />
        </Match>
    </FindBugsFilter>
    <FindBugsFilter>
        <Match>
            <Class name="org.wso2.carbon.identity.api.server.application.management.v1.core.functions.application.UpdateAuthenticationSequence" />
            <Method name="isRevertToDefaultSequence" />
            <Bug pattern="IMPROPER_UNICODE" />
        </Match>
    </FindBugsFilter>
    <FindBugsFilter>
        <Match>
            <Class name="org.wso2.carbon.identity.api.server.tenant.management.v1.core.ServerTenantManagementService" />
            <Method name="createTenantInfoBean" />
            <Bug pattern="IMPROPER_UNICODE" />
        </Match>
    </FindBugsFilter>
    <FindBugsFilter>
        <Match>
            <Class name="org.wso2.carbon.identity.api.server.tenant.management.v1.core.ServerTenantManagementService" />
            <Method name="validateInputAgainstCode" />
            <Bug pattern="IMPROPER_UNICODE" />
        </Match>
    </FindBugsFilter>

    <FindBugsFilter>
        <Match>
            <Class name="org.wso2.carbon.identity.rest.api.server.claim.management.v1.core.ServerClaimManagementService" />
            <Method name="validateAttributeMappings" />
            <Bug pattern="IMPROPER_UNICODE" />
        </Match>
    </FindBugsFilter>
    <FindBugsFilter>
        <Match>
            <Class name="org.wso2.carbon.identity.api.server.application.management.v1.core.functions.Utils" />
            <Method name="deepCopyApplication" />
            <Bug pattern="OBJECT_DESERIALIZATION" />
        </Match>
    </FindBugsFilter>
    <FindBugsFilter>
        <Match>
            <Class name="org.wso2.carbon.identity.api.server.script.library.v1.core.ServerScriptLibrariesService" />
            <Or>
                <Method name="addScriptLibrary" />
                <Method name="updateScriptLibrary" />
            </Or>
            <Bug pattern="PATH_TRAVERSAL_IN" />
        </Match>
    </FindBugsFilter>
    <!--
       The following exclusions are added as in java 11 and java 17,
       findbugs shows the bug of unused fields, but the unused fields
       cannot be removed as they are used inside unused but public classes.
    -->
    <FindBugsFilter>
        <Match>
            <Class name="org.wso2.carbon.identity.rest.api.server.challenge.v1.ApiException" />
            <Bug pattern="URF_UNREAD_FIELD"/>
        </Match>
    </FindBugsFilter>

    <!--
        The following exclusions added because the find bug issue is false positive.
        while using "toUpperCase" & "equalsIgnoreCase" functions, ENGLISH locale is already specified to avoid
        non-ASCII characters.
    -->
    <FindBugsFilter>
        <Match>
            <Class name="org.wso2.carbon.identity.api.server.configs.v1.core.ServerConfigManagementService" />
            <Method name="resetRemoteServerConfig" />
            <Bug pattern="IMPROPER_UNICODE" />
        </Match>
    </FindBugsFilter>
    <FindBugsFilter>
        <Match>
            <Class name="org.wso2.carbon.identity.rest.api.server.notification.template.v1.core.TemplateTypeService"/>
            <Method name="resetTemplateType"/>
            <Bug pattern="IMPROPER_UNICODE"/>
        </Match>
    </FindBugsFilter>
</FindBugsFilter>
