James Moger
2012-06-06 3f8cd414769b513a5b0815e0da21f19fe4b1f2d8
Fixed anonymous clone for 'Authenticated Push' repository (issue-96)
6 files modified
27 ■■■■ changed files
docs/04_releases.mkd 1 ●●●● patch | view | raw | blame | history
src/com/gitblit/AccessRestrictionFilter.java 5 ●●●●● patch | view | raw | blame | history
src/com/gitblit/DownloadZipFilter.java 3 ●●●● patch | view | raw | blame | history
src/com/gitblit/GitFilter.java 12 ●●●● patch | view | raw | blame | history
src/com/gitblit/PagesFilter.java 3 ●●●● patch | view | raw | blame | history
src/com/gitblit/SyndicationFilter.java 3 ●●●● patch | view | raw | blame | history
docs/04_releases.mkd
@@ -6,6 +6,7 @@
#### fixes
- Fixed bug where a repository set as authenticated push did not have anonymous clone access (issue 96)
- Fixed bug in Basic authentication if passwords had a colon (Github/peterloron)
#### changes
src/com/gitblit/AccessRestrictionFilter.java
@@ -74,9 +74,10 @@
     * Determine if the repository requires authentication.
     * 
     * @param repository
     * @param action
     * @return true if authentication required
     */
    protected abstract boolean requiresAuthentication(RepositoryModel repository);
    protected abstract boolean requiresAuthentication(RepositoryModel repository, String action);
    /**
     * Determine if the user can access the repository and perform the specified
@@ -144,7 +145,7 @@
        }
        // BASIC authentication challenge and response processing
        if (!StringUtils.isEmpty(urlRequestType) && requiresAuthentication(model)) {
        if (!StringUtils.isEmpty(urlRequestType) && requiresAuthentication(model, urlRequestType)) {
            if (user == null) {
                // challenge client to provide credentials. send 401.
                if (GitBlit.isDebugMode()) {
src/com/gitblit/DownloadZipFilter.java
@@ -72,10 +72,11 @@
     * Determine if the repository requires authentication.
     * 
     * @param repository
     * @param action
     * @return true if authentication required
     */
    @Override
    protected boolean requiresAuthentication(RepositoryModel repository) {
    protected boolean requiresAuthentication(RepositoryModel repository, String action) {
        return repository.accessRestriction.atLeast(AccessRestrictionType.VIEW);
    }
src/com/gitblit/GitFilter.java
@@ -105,11 +105,19 @@
     * Determine if the repository requires authentication.
     * 
     * @param repository
     * @param action
     * @return true if authentication required
     */
    @Override
    protected boolean requiresAuthentication(RepositoryModel repository) {
        return repository.accessRestriction.atLeast(AccessRestrictionType.PUSH);
    protected boolean requiresAuthentication(RepositoryModel repository, String action) {
        if (gitUploadPack.equals(action)) {
            // send to client
            return repository.accessRestriction.atLeast(AccessRestrictionType.CLONE);
        } else if (gitReceivePack.equals(action)) {
            // receive from client
            return repository.accessRestriction.atLeast(AccessRestrictionType.PUSH);
        }
        return false;
    }
    /**
src/com/gitblit/PagesFilter.java
@@ -92,10 +92,11 @@
     * Determine if the repository requires authentication.
     * 
     * @param repository
     * @param action
     * @return true if authentication required
     */
    @Override
    protected boolean requiresAuthentication(RepositoryModel repository) {
    protected boolean requiresAuthentication(RepositoryModel repository, String action) {
        return repository.accessRestriction.atLeast(AccessRestrictionType.VIEW);
    }
src/com/gitblit/SyndicationFilter.java
@@ -70,10 +70,11 @@
     * Determine if the repository requires authentication.
     * 
     * @param repository
     * @param action
     * @return true if authentication required
     */
    @Override
    protected boolean requiresAuthentication(RepositoryModel repository) {
    protected boolean requiresAuthentication(RepositoryModel repository, String action) {
        return repository.accessRestriction.atLeast(AccessRestrictionType.VIEW);
    }