1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-01 15:09:14 +00:00

Add secret key generator

This commit is contained in:
xiez
2012-07-05 21:07:49 +08:00
parent f5f076a3f1
commit f99250938e
4 changed files with 42 additions and 6 deletions

2
.gitignore vendored
View File

@@ -12,4 +12,4 @@ thirdpart/site.*
restart.sh
settings.py.mysql
settings.py.sqlite
secret_key.py

30
secret_key_generator.py Normal file
View File

@@ -0,0 +1,30 @@
#!/usr/bin/env python
# encoding: utf-8
from hashlib import md5, sha1
from base64 import urlsafe_b64encode as b64encode
import random
random.seed()
def random_string():
"""
Generate a random string (currently a random number as a string)
"""
return str(random.randint(0,100000))
def generate_key(max_length, data, encoder=b64encode, digester=md5):
"""
Generate a Base64-encoded 'random' key by hashing the data.
data is a tuple of seeding values. Pass arbitrary encoder and
digester for specific hashing and formatting of keys
"""
base = ''
for arg in data:
base += str(arg)
key = encoder(digester(base).digest())
return key[:max_length]
def generate_secret_key(file_name):
f = open(file_name, 'w')
f.write("SECRET_KEY = '%s'" % generate_key(40, (random_string(),)))
f.close()

View File

@@ -235,3 +235,11 @@ else:
LOGIN_URL = SITE_ROOT + 'accounts/login'
SEAFILE_VERSION = '0.9.4'
try:
from secret_key import *
except ImportError:
SETTINGS_DIR = os.path.abspath(os.path.dirname(__file__))
from secret_key_generator import generate_secret_key
generate_secret_key(os.path.join(SETTINGS_DIR, 'secret_key.py'))
from secret_key import *

View File

@@ -1,11 +1,10 @@
#!/usr/bin/env python
# encoding: utf-8
import settings
import os
import re
import time
import os
import stat
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.utils.hashcompat import sha_constructor
@@ -15,12 +14,11 @@ from django.core.cache import cache
from seaserv import seafserv_rpc, ccnet_threaded_rpc, seafserv_threaded_rpc, \
get_repo, get_commits, get_group_repoids
EMPTY_SHA1 = '0000000000000000000000000000000000000000'
import settings
from settings import PREVIEW_FILEEXT
EMPTY_SHA1 = '0000000000000000000000000000000000000000'
def go_permission_error(request, msg=None):
"""
Return permisson error page.