Fixed #93 Support password parameter when loads a PEM certificate from a local file.

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
This commit is contained in:
Bo-Yi Wu 2016-05-30 15:53:16 +08:00
parent 6c5e4ca457
commit 919ffe6726
5 changed files with 12 additions and 1 deletions

View File

@ -71,6 +71,7 @@ android:
ios:
enabled: false
pem_path: "key.pem"
password: "" # certificate password, default as empty string.
production: false
log:
@ -124,6 +125,7 @@ $ gorush -ios -m="your message" -i="your certificate path" -t="device token" -to
* `-i`: Apple Push Notification Certificate path (`pem` file).
* `-t`: Device token.
* `-topic`: The topic of the remote notification.
* `-password`: The certificate password.
The default endpoint is APNs development. Please add `-production` flag for APNs production push endpoint.

View File

@ -46,6 +46,7 @@ type SectionAndroid struct {
type SectionIos struct {
Enabled bool `yaml:"enabled"`
PemPath string `yaml:"pem_path"`
Password string `yaml:"password"`
Production bool `yaml:"production"`
}
@ -106,6 +107,7 @@ func BuildDefaultPushConf() ConfYaml {
// iOS
conf.Ios.Enabled = false
conf.Ios.PemPath = "key.pem"
conf.Ios.Password = ""
conf.Ios.Production = false
// log

View File

@ -21,6 +21,7 @@ android:
ios:
enabled: false
pem_path: "key.pem"
password: ""
production: false
log:

View File

@ -23,6 +23,7 @@ func main() {
version := flag.Bool("v", false, "gorush version")
confPath := flag.String("c", "", "yaml configuration file path for gorush")
certificateKeyPath := flag.String("i", "", "iOS certificate key file path for gorush")
certificatePassword := flag.String("password", "", "iOS certificate password for gorush")
apiKey := flag.String("k", "", "Android api key configuration for gorush")
port := flag.String("p", "", "port number for gorush")
token := flag.String("t", "", "token string")
@ -61,6 +62,11 @@ func main() {
gorush.PushConf.Ios.PemPath = *certificateKeyPath
}
if *certificatePassword != "" {
log.Printf("Load yaml config file error: '%v'", certificatePassword)
gorush.PushConf.Ios.Password = *certificatePassword
}
if *apiKey != "" {
gorush.PushConf.Android.APIKey = *apiKey
}

View File

@ -141,7 +141,7 @@ func InitAPNSClient() error {
if PushConf.Ios.Enabled {
var err error
CertificatePemIos, err = certificate.FromPemFile(PushConf.Ios.PemPath, "")
CertificatePemIos, err = certificate.FromPemFile(PushConf.Ios.PemPath, PushConf.Ios.Password)
if err != nil {
LogError.Error("Cert Error:", err.Error())