2015-09-26 6 views
0

с некоторой проблемой конфигурации.Конфигурация авторизации и аутентификации Apache Shiro для webapp

Я пытаюсь интегрировать Apache Shiro с mongo DB realm.

ини файла:

[main] 
mongoDBRealm = realm.MongoRealm 
securityManager.realms = $mongoDBRealm 

# specify login page 
shiro.loginUrl = /<ProjFolderNameInEclipse>/SuppliersLogin.html 

# name of request parameter with username; if not present filter assumes 'username' 
#authc.usernameParam = user 

# name of request parameter with password; if not present filter assumes 'password' 
#authc.passwordParam = pass 

# does the user wish to be remembered?; if not present filter assumes 'rememberMe' 
#authc.rememberMeParam = remember 


# redirect after successful login 
authc.successUrl = /<ProjFolderNameInEclipse>/pass.html 

[urls] 
# enable authc filter for all application pages 
/<ProjFolderNameInEclipse>/SuppliersLogin.html = authc 

этот INI работает с:

public static void main(String[] args) { 
    Factory<SecurityManager> factory = new IniSecurityManagerFactory("shiro.ini"); 
    SecurityManager securityManager = factory.getInstance(); 
    SecurityUtils.setSecurityManager(securityManager); 
    Subject currentUser = SecurityUtils.getSubject(); 
    .. 
    some logic 
    .. 
} 

выше код просто чтобы убедиться, что область работает правильно.

web.xml 



<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> 
    <listener> 
     <listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class> 

    </listener>  
    <context-param> 
     <param-name>shiroConfigLocations</param-name> 
     <param-value>classpath:shiro.ini</param-value> 
    </context-param> 
    <filter> 
     <filter-name>ShiroFilter</filter-name> 
     <filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class> 
    </filter> 


    <filter-mapping> 
     <filter-name>ShiroFilter</filter-name> 
     <url-pattern>/*</url-pattern> 
     <dispatcher>REQUEST</dispatcher> 
     <dispatcher>FORWARD</dispatcher> 
     <dispatcher>INCLUDE</dispatcher> 
     <dispatcher>ERROR</dispatcher> 
    </filter-mapping> 

</web-app> 

теперь у меня есть простая страница входа, которая находится внутри папки WebContent: с помощью следующей формы:

<form method="POST" action="" name="loginform"> 
           <header> 
            Sign In 
           </header> 

           <fieldset> 

            <section> 
             <label class="label">User name</label> 
             <label class="input"> <i class="icon-append fa fa-user"></i> 
              <input type="text" name="username"> 
              <b class="tooltip tooltip-top-right"><i class="fa fa-user txt-color-teal"></i> Please enter email address/username</b></label> 
            </section> 

            <section> 
             <label class="label">Password</label> 
             <label class="input"> <i class="icon-append fa fa-lock"></i> 
              <input type="password" name="password"> 
              <b class="tooltip tooltip-top-right"><i class="fa fa-lock txt-color-teal"></i> Enter your password</b> </label> 
             <div class="note"> 
              <a href="forgotpassword.html">Forgot password?</a> 
             </div> 
            </section> 

            <section> 
             <label class="checkbox"> 
              <input type="checkbox" name="remember" checked=""> 
              <i></i>Stay signed in</label> 
            </section> 
           </fieldset> 
           <footer> 
            <!-- <button type="submit" class="btn btn-primary" value="Sign In"> --> 
            <button type="submit" class="btn btn-primary" value="Login" name="submit"> 
             Sign in 
            </button> 
           </footer> 
          </form> 

во время удара представить BTN, ничего не работает рядом страница снова перезагружается ..

все, что я сделал неправильно?

ответ

2

На мой взгляд, сиро не поддерживает MongoDB из коробки. Пожалуйста, просмотрите следующие сообщения, чтобы найти возможное решение. Обратите внимание, что я не являюсь автором из возможных решений:

Как описать поведение вашего веб-приложения, сиро не может найти область, указанный в вашем shiro.ini (mongoDBRealm = realm.MongoRealm), поэтому он перенаправляет вас на страницу входа.

 Смежные вопросы

  • Нет связанных вопросов^_^