package com.opensymphony.xwork2.security;
import com.opensymphony.xwork2.XWorkTestCase;
import java.util.ArrayList;
import java.util.List;
public class DefaultAcceptedPatternsCheckerTest extends XWorkTestCase {
public void testHardcodedAcceptedPatterns() throws Exception {
// given
List<String> params = new ArrayList<String>() {
{
add("%{#application['test']}");
add("%{#application.test}");
add("%{#Application['test']}");
add("%{#Application.test}");
add("%{#session['test']}");
add("%{#session.test}");
add("%{#Session['test']}");
add("%{#Session.test}");
add("%{#struts['test']}");
add("%{#struts.test}");
add("%{#Struts['test']}");
add("%{#Struts.test}");
add("%{#request['test']}");
add("%{#request.test}");
add("%{#Request['test']}");
add("%{#Request.test}");
add("%{#servletRequest['test']}");
add("%{#servletRequest.test}");
add("%{#ServletRequest['test']}");
add("%{#ServletRequest.test}");
add("%{#servletResponse['test']}");
add("%{#servletResponse.test}");
add("%{#ServletResponse['test']}");
add("%{#ServletResponse.test}");
add("%{#parameters['test']}");
add("%{#parameters.test}");
add("%{#Parameters['test']}");
add("%{#Parameters.test}");
}
};
AcceptedPatternsChecker checker = new DefaultAcceptedPatternsChecker();
for (String param : params) {
// when
AcceptedPatternsChecker.IsAccepted actual = checker.isAccepted(param);
// then
assertFalse("Access to " + param + " is possible!", actual.isAccepted());
}
}
public void testUnderscoreInParamName() throws Exception {
// given
AcceptedPatternsChecker checker = new DefaultAcceptedPatternsChecker();
// when
AcceptedPatternsChecker.IsAccepted actual = checker.isAccepted("mapParam['param_1']");
// then
assertTrue("Param with underscore wasn't accepted!", actual.isAccepted());
}
}