Пожалуйста, смотрите Документация Shiro's Spring для правильной конфигурации web.xml.Он отличается от примера web.xml, который вы показали.
Поскольку XML-конфигурация Spring немного более мощная, чем INI Shiro, пользователям Spring рекомендуется использовать полную конфигурацию Spring вместо INI Shiro.См. Раздел «Веб-приложения» на этой странице, чтобы увидеть пример конфигурации Spring только для Shiro.
В части «applicationContext.xml» документации этой страницы вы увидите
<bean id="myRealm" class="...">
...
</bean>
часть конфигурации xml.Замените это своим определением компонента JdbcRealm.Вы можете внедрить источник данных, настроенный Spring, как и ожидалось:
<bean id="myRealm" class="org.apache.shiro.realm.jdbc.JdbcRealm">
<property name="dataSource" ref="springConfiguredDataSource"/>
...
</bean>
Вы можете увидеть запросы SQL по умолчанию, которые выполняются, посмотрев исходный код JdbcRealm .
Вы можете настроить эти запросы по мере необходимости.
Обратите внимание, что если ваша модель данных достаточно сложна, так что JdbcRealm недостаточно для ваших нужд, то легко расширить AuthorizingRealm и выполнить Shiroпоиск пользователя / роли / разрешения с использованием любого API-интерфейса источника данных, который вы предпочитаете (JPA, Hibernate и т. д.).