Shiro Error Analysis
Error message:
Org. apache. shiro. unavailablesecuritymanagerexception: No securitymanager accessible to the calling code, either bound to the org. apache. shiro. util. threadcontext or as a VM static Singleton. this is an invalid application configuration.
Error cause:
When Shiro filter is configured in Web. XML, the Shiro filter is placed after the struts2 filter.
Cause analysis:
If struts2 is used, the static resource securityutils needs to be loaded when struts2 loads static resources. If the Shiro filter is placed after the struts2 filter, therefore, it is bound to be unable to be loaded into struts2, and then securityutils will be used. getsubject,
Solution:
Shiro's filter should be placed on the filter of struts2
You can also use this method before using it: Add the following code before securityutils. getsubject ();
Factory <securitymanager> factory = new inisecuritymanagerfactory ("classpath: Shiro. ini "); // create a securitymanager (create a securitymanager instance based on the configuration) securitymanager SECURITY = factory. getinstance (); securityutils. setsecuritymanager (security );
I don't need to explain this.