mirror of
				https://github.com/spring-projects/spring-security.git
				synced 2025-11-04 00:28:54 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			173 lines
		
	
	
		
			8.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			173 lines
		
	
	
		
			8.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!--
 | 
						|
 * ========================================================================
 | 
						|
 * 
 | 
						|
 * Copyright 2004 Acegi Technology Pty Limited
 | 
						|
 *
 | 
						|
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
 * you may not use this file except in compliance with the License.
 | 
						|
 * You may obtain a copy of the License at
 | 
						|
 *
 | 
						|
 *     http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
 *
 | 
						|
 * Unless required by applicable law or agreed to in writing, software
 | 
						|
 * distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
 * See the License for the specific language governing permissions and
 | 
						|
 * limitations under the License.
 | 
						|
 * 
 | 
						|
 * ========================================================================
 | 
						|
-->
 | 
						|
 | 
						|
<!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>
 | 
						|
<title>Building</title>
 | 
						|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 | 
						|
</head>
 | 
						|
 | 
						|
<body>
 | 
						|
  <h1>Building Acegi Security System</h1>
 | 
						|
  <h2>Checking Out from CVS </h2>
 | 
						|
  <p>This project uses <a href="http://maven.apache.org">Maven</a> as project manager
 | 
						|
	and build tool.	We recommend you to install Maven 1.0.2 or greater before trying
 | 
						|
	the following. <b>Note there are workarounds at the bottom of this page.</b></p>
 | 
						|
  <p>To checkout Acegi Security from CVS, execute the following command on a
 | 
						|
	single line:</p>
 | 
						|
  <ol>
 | 
						|
    <pre>maven scm:checkout-project
 | 
						|
    -Dmaven.scm.method=cvs
 | 
						|
    -Dmaven.scm.cvs.module=acegisecurity
 | 
						|
    -Dmaven.scm.cvs.root=:pserver:anonymous@cvs.sourceforge.net:/cvsroot/acegisecurity
 | 
						|
    -Dmaven.scm.checkout.dir=acegisecurity</pre>
 | 
						|
  </ol>
 | 
						|
  
 | 
						|
  <p>See our <a href="cvs-usage.html">CVS Usage</a> page for other CVS access options.</p>
 | 
						|
      
 | 
						|
  <h2>Quick Build</h2>
 | 
						|
  <p>Often people reading this document just want to see if Acegi Security will work 
 | 
						|
	for their projects. They want to deploy a sample application, and that's about it
 | 
						|
	(after all, all the reference documentation can be read online at
 | 
						|
	<a href="http://acegisecurity.sourceforge.net">http://acegisecurity.sourceforge.net</a>).
 | 
						|
	In this case, execute:</p>
 | 
						|
  <ol>
 | 
						|
	<pre>cd $ACEGI_SECURITY/core</pre>
 | 
						|
	<pre>maven jar:install</pre>
 | 
						|
	<pre>cd $ACEGI_SECURITY/samples/contacts</pre>
 | 
						|
	<pre>maven multiwar:multiwar</pre>
 | 
						|
	<pre>copy $ACEGI_SECURITY/samples/contacts/target/acegi-security-sample-contacts-filter.war $YOUR_CONTAINER/webapps</pre>
 | 
						|
  </ol>
 | 
						|
  <p>Then load up your web container and visit
 | 
						|
	<a href="http://localhost:8080/acegi-security-sample-contacts-filter/">http://localhost:8080/acegi-security-sample-contacts-filter/</a>
 | 
						|
	(or whatever location is appropriate for your web container).</p>
 | 
						|
 | 
						|
  <h2>Installing commons-attributes-plugin</h2>
 | 
						|
  <p>To properly integrate Commons Attributes with Maven (as required by
 | 
						|
     the <a href="/multiproject/acegi-security-sample-attributes/index.html">Attributes Sample</a>),
 | 
						|
	 you need to install an additional plugin.</b></p>
 | 
						|
  <p>To install the <code>commons-attributes-plugin</code>, execute the following commands:</p>
 | 
						|
  <ol>
 | 
						|
	<pre>cd $ACEGI_SECURITY/doc</pre>
 | 
						|
    <pre>maven plugin:download
 | 
						|
    -DgroupId=commons-attributes
 | 
						|
    -DartifactId=commons-attributes-plugin
 | 
						|
    -Dversion=2.1</pre>
 | 
						|
  </ol>
 | 
						|
  <p>The second (final) command should be executed on a single line.</p>
 | 
						|
 | 
						|
  <h2>Building All JARs</h2>
 | 
						|
  <p>Sometimes people are already using Acegi Security, and they just want to build the
 | 
						|
	latest code from CVS. To build all artifacts (JARs) and install them into
 | 
						|
	your local Maven repository, simply perform a CVS checkout and install the
 | 
						|
	<code>commons-attributes-plugin</code> (as detailed above), and then
 | 
						|
	execute:</p>
 | 
						|
  <ol>
 | 
						|
	<pre>cd $ACEGI_SECURITY/doc</pre>
 | 
						|
	<pre>maven multiproject:install</pre>
 | 
						|
  </ol>
 | 
						|
  <p>You can then check your <code>$HOME/.maven/repository/acegisecurity</code>
 | 
						|
	directory and it should contain all of the latest Acegi Security JARs.</p>
 | 
						|
  
 | 
						|
  <h2>Building The Site</h2>
 | 
						|
  <p>By "site" we mean the web site you can browse at 
 | 
						|
	<a href="http://acegisecurity.sourceforge.net">http://acegisecurity.sourceforge.net</a>,
 | 
						|
	which includes the reference documentation and all of the Maven reports.
 | 
						|
	If you'd like a local copy, simply execute:
 | 
						|
  <ol>
 | 
						|
	<pre>cd $ACEGI_SECURITY/doc</pre>
 | 
						|
	<pre>maven -Dpassword= changelog:create-cvspass</pre>
 | 
						|
	<pre>maven    multiproject:clean multiproject:site
 | 
						|
	-Dmaven.jar.override=on 
 | 
						|
	-Dmaven.jar.clover-ant=1.3.3_01 
 | 
						|
</pre>
 | 
						|
  </ol>
 | 
						|
  <p>As per the
 | 
						|
	<a href="http://maven.apache.org/reference/plugins/changelog/">Maven Changelog Plugin Documentation</a>,
 | 
						|
	you must tell the plugin the "anonymous CVS pserver" password is blank. This is
 | 
						|
	why there is the "create-cvspass" command shown above. You should only need to
 | 
						|
	do this once.</p>
 | 
						|
 | 
						|
  <h2>Memory and Clover Workarounds</h2>
 | 
						|
  <p>If you get an <code>OutOfMemoryError</code>, simply execute the following before
 | 
						|
	calling Maven:</p>
 | 
						|
	<ol>
 | 
						|
		<pre>set MAVEN_OPTS=-Xmx1024m</pre>
 | 
						|
	</ol>
 | 
						|
  <p>If you get an <code>[ERROR] Invalid license: Invalid license file [E1202]</code>,
 | 
						|
	this is because the <code>maven-clover-plugin</code> is using an old version of
 | 
						|
	<code>clover-ant-xxx.jar</code>. Whilst Acegi Security's <code>project.properties</code>
 | 
						|
	specifies a newer version, subprojects have an inheritence problem and don't pick
 | 
						|
	this up (as of the time of writing). To workaround this issue, you need to
 | 
						|
	specify those override properties on the command line. For example, to execute the
 | 
						|
	Clover reports for the core subproject, you would do the following:</p>
 | 
						|
  <ol>
 | 
						|
	<pre>cd $ACEGI_SECURITY/core</pre>
 | 
						|
	<pre>maven clover:html-report -Dmaven.jar.override=on -Dmaven.jar.clover-ant=1.3.3_01</pre>
 | 
						|
  </ol>
 | 
						|
 | 
						|
  <h2>CVS-over-SSH Workarounds</h2>
 | 
						|
 | 
						|
  <p>Another possible problem is related to CVS-over-SSH ("ext" in CVSROOT) appearing to freeze.
 | 
						|
	The following instructions assume you're an Acegi Security developer who has CVS access
 | 
						|
	to the project, as if you're not then you shouldn't be trying to use CVS-over-SSH.
 | 
						|
	The instructions above all relate to goals which use the default, anonymous
 | 
						|
	pserver CVS repository.</p>
 | 
						|
	
 | 
						|
  <p>If you really need authenticated SSH-based access, first check your
 | 
						|
	<code>$ACEGI_SECURITY/build.properties</code> contains a
 | 
						|
	<code>maven.username</code> equal to your SourceForge username. If your Maven CVS
 | 
						|
	or SSH commands still don't work, test you have automatic CVS-over-SSH access operational
 | 
						|
	by executing the following command:</p>
 | 
						|
  <ol>
 | 
						|
	<pre>cvs -d :ext:YOUR_SOURCEFORGE_USERNAME@cvs.sourceforge.net:/cvsroot/acegisecurity</pre>
 | 
						|
  </ol>
 | 
						|
  
 | 
						|
  <p>If this CVS command executes without requiring any interaction such as password
 | 
						|
	entry, you're ready to proceed. If it fails (or requires a password entry), you 
 | 
						|
	probably need to review your CVS setup. This varies depending on your CVS client.</p>
 | 
						|
	
 | 
						|
  <p>One Windows-based command line CVS-over-SSH-with-auto-login setup that 
 | 
						|
	works very well is to install 
 | 
						|
	<a href="http://www.cvsnt.com/">CVSNT</a> (which has a CVS client console utility)
 | 
						|
	and 
 | 
						|
	<a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">PuTTY</a> (download
 | 
						|
	<code>putty.zip</code>) together, and use
 | 
						|
	PuTTY's Pageant to automatically authenticate. A resource that describes in detail
 | 
						|
	how to configure WinCVS (which internally uses CVSNT's command line client) with PuTTY 
 | 
						|
	(including automatic SSH authentication) is 
 | 
						|
	<a href="http://sourceforge.net/docman/display_doc.php?docid=766&group_id=1">SourceForge's instructions</a>.
 | 
						|
	One issue with the SourceForge instructions is they forget to mention how to
 | 
						|
	tell the CVS command-line client to use <code>plink.exe</code>, which is PuTTY's SSH command-line
 | 
						|
	version. The solution is to execute 
 | 
						|
	<code>set CVS_RSH=C:\Program Files\putty\plink.exe</code>
 | 
						|
	(or whatever path is appropriate to plink) before running the CVS command line.
 | 
						|
	In fairness, the SourceForge instructions target the Windows front-end to CVS, whilst
 | 
						|
	we need the command-line version to work.</p>
 | 
						|
	
 | 
						|
  <p>It is worth noting that as the Maven project uses the anonymous pserver
 | 
						|
	repository for most operations, these setup instructions really only apply if
 | 
						|
	doing something like deploying the site over SSH etc.</p>
 | 
						|
	
 | 
						|
</body>
 | 
						|
</html>
 |