#
#    Licensed to the Apache Software Foundation (ASF) under one
#    or more contributor license agreements. See the NOTICE file
#    distributed with this work for additional information
#    regarding copyright ownership. The ASF licenses this file
#    to you 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.
#

providers = google,yahoo

# the identifiers must be normalized
google.openid_server = https://www.google.com/accounts/o8/ud
google.identifier.0 = https://google.com/accounts/o8/id
google.identifier.1 = https://www.google.com/accounts/o8/id
google.identifier.2 = http://www.google.com/
google.identifier.3 = http://google.com/

yahoo.openid_server = https://open.login.yahooapis.com/openid/op/auth
yahoo.identifier.0 = http://www.yahoo.com/
yahoo.identifier.1 = http://yahoo.com/
yahoo.identifier.2 = http://me.yahoo.com/