久久亚洲精品成人777大小说,亚洲AV无码一区二区乱子伦,亚洲精品理论电影在线观看http://www.tkk7.com/dingdangxiaoma/category/30749.htmlzh-cnSat, 12 Apr 2008 07:27:56 GMTSat, 12 Apr 2008 07:27:56 GMT60spring acegi 官方例子http://www.tkk7.com/dingdangxiaoma/articles/192398.html叮當(dāng)小馬叮當(dāng)小馬Sat, 12 Apr 2008 05:50:00 GMThttp://www.tkk7.com/dingdangxiaoma/articles/192398.htmlhttp://www.tkk7.com/dingdangxiaoma/comments/192398.htmlhttp://www.tkk7.com/dingdangxiaoma/articles/192398.html#Feedback1http://www.tkk7.com/dingdangxiaoma/comments/commentRss/192398.htmlhttp://www.tkk7.com/dingdangxiaoma/services/trackbacks/192398.html2008年4月12日  edited by dingdangxiaoma
acegi安全是一個(gè)強(qiáng)大的,靈活的安全解決方案的企業(yè)軟件,并特別著重于應(yīng)用,利用spring。用acegi安全,為用戶的應(yīng)用與全面的認(rèn)證,授權(quán),例如基于職務(wù)的訪問(wèn)控制,通道安全和人類用戶檢測(cè)能力。(google 對(duì)acegid的翻譯)
參考資料:http://www.tfo-eservices.eu/wb_tutorials/media/SpringAcegiTutorial/HTML/SpringAcegiTutorial-1_1-html.html
里面有一個(gè)例子:SpringAcegiTutorial,可以進(jìn)行下載,并運(yùn)行,做為一個(gè)實(shí)例,已經(jīng)相當(dāng)不錯(cuò)了。
講述了admin ,user的登錄問(wèn)題。及權(quán)限控件,acegi 的配置。
這個(gè)例子是spring mvc + spring acegi 的例子,閱讀前最好有spring mvc 的基礎(chǔ)。這里只摘錄簡(jiǎn)單的配置說(shuō)明。
<!-- ****** START ACEGI Security Configuration *******-->
    
<!-- ======================== FILTER CHAIN ======================= -->

    
<!--  if you wish to use channel security, add "channelProcessingFilter," in front
        of 
"httpSessionContextIntegrationFilter" in the list below -->
    
<bean id="filterChainProxy"
        
class="org.acegisecurity.util.FilterChainProxy">
        
<property name="filterInvocationDefinitionSource">
            
<value>
                CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
                PATTERN_TYPE_APACHE_ANT
                
/**=httpSessionContextIntegrationFilter,formAuthenticationProcessingFilter,exceptionTranslationFilter,filterSecurityInterceptor
            </value>
        </property>
    </bean>

    <!-- Start Security filter config -->
    <bean id="exceptionTranslationFilter"
        class="org.acegisecurity.ui.ExceptionTranslationFilter">
        <property name="authenticationEntryPoint">
            <ref bean="formLoginAuthenticationEntryPoint" />
        </property>
    </bean>

    <!-- Define filter to handle BASIC authentication -->
    <bean id="basicProcessingFilter"
        class="org.acegisecurity.ui.basicauth.BasicProcessingFilter">
        <property name="authenticationManager">
            <ref bean="authenticationManager" />
        </property>
        <property name="authenticationEntryPoint">
            <ref bean="authenticationEntryPoint" />
        </property>
    </bean>

    <!-- Define realm for BASIC login-->
    <bean id="authenticationEntryPoint"
        class="org.acegisecurity.ui.basicauth.BasicProcessingFilterEntryPoint">
        <property name="realmName">
            <value>Spring Web Realm</value>
        </property>
    </bean>

    <!-- Define filter to handle FORM authentication -->
    <bean id="formAuthenticationProcessingFilter"
        class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilter">
        <property name="filterProcessesUrl">
            <value>/j_acegi_security_check</value>
        </property>
        <property name="authenticationFailureUrl">
            <value>/loginFailed.html</value>
        </property>
        <property name="defaultTargetUrl">
            <value>/</value>
        </property>
        <property name="authenticationManager">
            <ref bean="authenticationManager" />
        </property>
    </bean>

    <!-- Define realm for FORM login-->
    <bean id="formLoginAuthenticationEntryPoint"
        class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint">
        <property name="loginFormUrl">
            <value>/login.jsp</value>
        </property>
        <property name="forceHttps">
            <value>false</value>
        </property>
    </bean>

    <bean id="httpSessionContextIntegrationFilter"
        class="org.acegisecurity.context.HttpSessionContextIntegrationFilter">
    </bean>
    <!-- End Security filter config -->

    <!-- Start Security interceptor config -->
    <!-- Define authentication manager, decision manager and secure URL patterns -->
    <bean id="filterSecurityInterceptor"
        class="org.acegisecurity.intercept.web.FilterSecurityInterceptor">
        <property name="authenticationManager">
            <ref bean="authenticationManager" />
        </property>
        <property name="accessDecisionManager">
            <ref bean="accessDecisionManager" />
        </property>
        <property name="objectDefinitionSource">
            <value>
                CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
                PATTERN_TYPE_APACHE_ANT 
                /secure/admin/*=ROLE_ADMIN
                /secure/app/*=ROLE_USER
            </value>
        </property>
    </bean>
    <!-- End Security interceptor config -->

    <!-- Start authentication config -->
    <bean id="authenticationManager"
        class="org.acegisecurity.providers.ProviderManager">
        <property name="providers">
            <list>
                <ref bean="daoAuthenticationProvider" />
            </list>
        </property>
    </bean>

    <bean id="daoAuthenticationProvider"
        class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
        <property name="userDetailsService">
            <ref bean="userDetailsService" />
        </property>
    </bean>

    <!-- Authentication using In-memory Dao -->
   
    <bean id="userDetailsService"
        class="org.acegisecurity.userdetails.memory.InMemoryDaoImpl">
        <property name="userMap">
            <value>
                jklaassen=4moreyears,ROLE_ADMIN
                bouerj=ineedsleep,ROLE_USER
            </value>
        </property>
    </bean>
    <!-- Authentication using JDBC Dao -->
<!--
     <bean id="userDetailsService"
        class="org.acegisecurity.userdetails.jdbc.JdbcDaoImpl">
        <property name="dataSource">
        <ref bean="dataSource"/>
        </property>
        </bean>
-->
        <!-- End authentication config -->

    <!-- Start authorization config -->
    <bean id="accessDecisionManager"
        class="org.acegisecurity.vote.UnanimousBased">
        <property name="decisionVoters">
            <list>
                <ref bean="roleVoter" />
            </list>
        </property>
    </bean>

    <bean id="roleVoter" class="org.acegisecurity.vote.RoleVoter">
        <property name="rolePrefix">
            <value>ROLE_</value>
        </property>
    </bean>
    <!-- End authorization config -->

    <!-- ****** END ACEGI Security Configuration *******-->
以上就是所有的源代碼配置在spring 的配置文件中。詳細(xì)的說(shuō)明在官方的文檔上。
在上面的配置文件的方式是以in-memory 的方法,也就是在配置文件中指定登錄的用戶名及密碼。在實(shí)際的應(yīng)用中,應(yīng)用到數(shù)據(jù)庫(kù)或其它技術(shù)。
     <bean id="userDetailsService"
        class="org.acegisecurity.userdetails.jdbc.JdbcDaoImpl">
        <property name="dataSource">
        <ref bean="dataSource"/>
        </property>
        </bean>

    
<bean id="dataSource"
        
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        
<property name="driverClassName">
            
<value>com.mysql.jdbc.Driver</value>
        
</property>
        
<property name="url">
            
<value>jdbc:mysql://localhost:3306/test</value>
        </property>
        
<property name="username">
            
<value>root</value>
        
</property>
        
<property name="password">
            
<value>1</value>
        
</property>
    
</bean>
以上兩個(gè)bean的代碼就是把信息存儲(chǔ)到數(shù)據(jù)庫(kù)中。
sql 語(yǔ)句如下:
CREATE TABLE `users` (
  `username` varchar(
50) NOT NULL,
  `password` varchar(
50) NOT NULL,
  `enabled` varchar(
50) NOT NULL,
  PRIMARY KEY (`username`)
) ENGINE
=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `users` VALUES (
'dianne','emu','true');
INSERT INTO `users` VALUES (
'marissa','koala','true');
INSERT INTO `users` VALUES (
'peter','opal','true');
INSERT INTO `users` VALUES (
'scott','wombat','true');

CREATE TABLE `authorities` (
  `username` varchar(50) NOT NULL,
  `authority` varchar(50) NOT NULL,
  UNIQUE KEY `ix_auth_username` (`username`,`authority`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `authorities` VALUES ('dianne','ROLE_ADMIN');
INSERT INTO `authorities` VALUES ('marissa','ROLE_ADMIN');
INSERT INTO `authorities` VALUES ('marissa','ROLE_USER');
INSERT INTO `authorities` VALUES ('peter','ROLE_USER');
INSERT INTO `authorities` VALUES ('scott','ROLE_ADMIN');
ALTER TABLE `authorities`
ADD FOREIGN KEY (`username`) REFERENCES `users` (`username`);
所有的配置就是這些:
理解一下原理:
1。acegi的添加,可以在程序?qū)懲曛笤偬砑?,配置靈活但并不簡(jiǎn)單。
2.四個(gè)步驟:
安全是實(shí)施這四項(xiàng)檢查:

    1 限制出入檢查(是以資源擔(dān)保? ) ;
    2 現(xiàn)有的認(rèn)證檢查(有用戶被認(rèn)證? ) ;
    3 如果沒(méi)有有效的登錄用戶:認(rèn)證要求退房(都是正確的用戶名和密碼提供? ) ;
    4 授權(quán)入?。ú缓脩魮碛兴璧慕巧?? ) ;
3.對(duì)于授權(quán)的處理,未授權(quán)的用戶無(wú)法進(jìn)行訪問(wèn)。應(yīng)該設(shè)置 403.jsp未授權(quán)頁(yè)面。


]]>
sping mvc demo1http://www.tkk7.com/dingdangxiaoma/articles/192083.html叮當(dāng)小馬叮當(dāng)小馬Fri, 11 Apr 2008 02:26:00 GMThttp://www.tkk7.com/dingdangxiaoma/articles/192083.htmlhttp://www.tkk7.com/dingdangxiaoma/comments/192083.htmlhttp://www.tkk7.com/dingdangxiaoma/articles/192083.html#Feedback0http://www.tkk7.com/dingdangxiaoma/comments/commentRss/192083.htmlhttp://www.tkk7.com/dingdangxiaoma/services/trackbacks/192083.html2008年4月11日  edited by dingdangxiaoma
spring mvc 與struts jsf 類似。表現(xiàn)層,因?yàn)榍皫滋炜蠢樱莝pring mvc寫的,所以就做個(gè)小例子吧。
參考資料:http://www.ideawu.net/person/spring_mvc.html ,這是個(gè)入門的例子,但是新手做起來(lái),真麻煩,代碼前面帶編號(hào),真是個(gè)問(wèn)題。
能過(guò)輸入:http://localhost/springmvc1/hello.do  調(diào)用 hello.jsp 打印出Hello World 頁(yè)面。
1.包配置:spring.jar ,common-logging.jar jstl.jar standard.jar
2.后臺(tái)類書寫:HelloController.java
package com.ideawu;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class HelloController implements Controller {
    
/*
     * private HelloManager helloManager;
     * 
     * public void setHelloManager(HelloManager helloManager) {
     * this.helloManager = helloManager; }
     
*/
    
public ModelAndView handleRequest(HttpServletRequest request,
            HttpServletResponse response) 
throws Exception {
        request.setAttribute(
"hello_1""你好啊, Spring!");
        request.setAttribute(
"hello_2""Hello World!");
        
return new ModelAndView("hello");
    }

}
3.xml配置:  ideawu-servlet.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    
<bean id="viewResolver"
        
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        
<property name="prefix" value="/WEB-INF/jsp/" />
        
<property name="suffix" value=".jsp" />
    
</bean>
    
<bean id="simpleUrlHandlerMapping"
        
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        
<property name="mappings">
            
<props>
                
<prop key="/hello.do">helloController</prop>
            
</props>
        
</property>
    
</bean>
    
<bean id="helloController" class="com.ideawu.HelloController">
        
<!--
            
<property name="helloManager" ref="helloManager" />
        
-->
    
</bean>
</beans>
4.jsp 文件: /WEB-INF/jsp/hello.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    
<head>
        
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        
<title>Hello World!</title>
    
</head>
    
<body>
        
<h2>
            ${hello_1}
        
</h2>
        
<h2>
            ${hello_2}
        
</h2>
    
</body>
</html>
5.web.xml配置:
<filter>
        
<filter-name>encodingFilter</filter-name>
        
<filter-class>
            org.springframework.web.filter.CharacterEncodingFilter
        
</filter-class>
        
<init-param>
            
<param-name>encoding</param-name>
            
<param-value>UTF-8</param-value>
        
</init-param>
    
</filter>
    
<filter-mapping>
        
<filter-name>encodingFilter</filter-name>
        
<url-pattern>*.do</url-pattern>
    
</filter-mapping>
    
<servlet>
        
<servlet-name>ideawu</servlet-name>
        
<servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        
</servlet-class>
        
<load-on-startup>1</load-on-startup>
    
</servlet>
    
<servlet-mapping>
        
<servlet-name>ideawu</servlet-name>
        
<url-pattern>*.do</url-pattern>
    
</servlet-mapping>
    
<welcome-file-list>
        
<welcome-file>index.jsp</welcome-file>
        
<welcome-file>index.html</welcome-file>
    
</welcome-file-list>
    
<jsp-config>
        
<taglib>
            
<taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
            <taglib-location>/WEB-INF/tld/c.tld</taglib-location>
        
</taglib>
        
<taglib>
            
<taglib-uri>http://java.sun.com/jsp/jstl/fmt</taglib-uri>
            <taglib-location>/WEB-INF/tld/fmt.tld</taglib-location>
        
</taglib>
    
</jsp-config>
以上就是程序的所代碼了??傊褪窃趙eb.xml中進(jìn)行過(guò)慮器配置,寫后臺(tái)處理程序,xml中進(jìn)行后臺(tái)處理的映射,編寫.jsp頁(yè)面。也就通過(guò)訪問(wèn)*.do(或其它格式),來(lái)映射到相應(yīng)的.jsp程序上。


]]>
主站蜘蛛池模板: 亚洲AV天天做在线观看| 亚洲国产精品无码久久98| 亚洲AV中文无码乱人伦| 亚洲精品国产福利一二区| 亚洲天堂久久精品| 99久久婷婷国产综合亚洲| 亚洲欧洲日产国码久在线| 人妻免费久久久久久久了| 18禁美女黄网站色大片免费观看 | 国产日产亚洲系列最新| 亚洲精品456播放| 亚洲免费日韩无码系列| 中文字幕免费视频| 国产成人高清精品免费鸭子 | 日本高清不卡aⅴ免费网站| 日本一卡精品视频免费| 成人毛片免费观看视频| 波多野结衣视频在线免费观看| 亚洲αv久久久噜噜噜噜噜| 亚洲人成电影网站免费| 免费人妻无码不卡中文字幕18禁| 一级A毛片免费观看久久精品 | 国产精品亚洲综合久久| 中文字幕无码免费久久9一区9| 最新仑乱免费视频| 免费人成视频在线播放| 精品国产免费人成电影在线观看| 亚洲精品无码激情AV| 国产乱子伦精品免费视频| 免费a在线观看播放| 成人av片无码免费天天看| 亚洲国产天堂久久综合网站| 足恋玩丝袜脚视频免费网站| 亚洲色大网站WWW永久网站| 黄桃AV无码免费一区二区三区| 亚洲宅男永久在线| 97人妻精品全国免费视频| 精品丝袜国产自在线拍亚洲| 亚洲国产中文字幕在线观看| 一级毛片**不卡免费播| 亚洲av无码片在线播放|