How can I use boolean parameters from application.properties in spring security context configuration xml file? -
i trying utilize boolean parameter application.properties in spring-security configuration xml file. don't know why can utilize not-boolean parameters, error boolean.
how can utilize boolean parameters?
here application.properties:
jdbc_connection_string=jdbc:mysql://localhost:3306/schema?user=username&password=password protocol=http use_secure=false my spring-security.xml is:
< remember-me user-service-ref="internaluserdetails" data-source-ref="datasource" key="this-is-my-key02203452416fw" use-secure-cookie="${use_secure}" /> ... error: cvc-datatype-valid.1.2.1: '${use_secure}' not valid value 'boolean'
i have tried set use_secure=false same error again. how can utilize boolean parameters in spring security configuration xml file?
here web.xml:
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0" > <display-name> name-myapp</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- servlets --> <servlet> <servlet-name>myapp</servlet-name> <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <!-- servlets mappings --> <servlet-mapping> <servlet-name>myapp</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <context-param> <param-name>contextconfiglocation</param-name> <param-value> /web-inf/servlet-context.xml, /web-inf/spring-security.xml </param-value> </context-param> <!-- filters --> <filter> <filter-name>springsecurityfilterchain</filter-name> <filter-class>org.springframework.web.filter.delegatingfilterproxy</filter-class> </filter> <filter-mapping> <filter-name>httpmethodfilter</filter-name> <servlet-name>myapp</servlet-name> </filter-mapping> <filter> <filter-name>httpmethodfilter</filter-name> <filter-class>org.springframework.web.filter.hiddenhttpmethodfilter</filter-class> </filter> <filter-mapping> <filter-name>springsecurityfilterchain</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.contextloaderlistener</listener-class> </listener> </web-app>
the xsd schema definition of security namespace allows boolean values in use-secure-cookie attribute. if don't specify 1 of allowed literals ("true" or "false"), xml won't pass schema validation, , won't parsed.
so if utilize security namespace configuration, won't able utilize external properties set value. prove point, here relevant code snippet remembermebeandefinitionparser.parse():
string usesecurecookie = element.getattribute("use-secure-cookie"); if (stringutils.hastext(usesecurecookie)) { services.getpropertyvalues().addpropertyvalue( "usesecurecookie", boolean.valueof(usesecurecookie)); } as can see attribute straight away converted boolean, no mechanism given chance farther process value.
i'm not sure, chances fixed relaxing xsd allow string value, , pass value bean definition (services above) without converting boolean. propertyplaceholderconfigurer later resolve given value if happens property placeholder.
if want give try, sense free open ticket in spring security issue tracker.
spring web-applications spring-mvc spring-security application-server
No comments:
Post a Comment