Applied code cleanup

pull/477/head
Amanda Anganes 2013-07-12 16:58:41 -04:00
parent 3e23967b46
commit 15aea61fbe
160 changed files with 15273 additions and 9048 deletions

View File

@ -20,8 +20,6 @@ import java.math.BigInteger;
import java.security.SecureRandom;
import java.text.ParseException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
@ -29,8 +27,6 @@ import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.impl.client.DefaultHttpClient;
import org.mitre.jwt.signer.service.JwtSigningAndValidationService;
import org.mitre.jwt.signer.service.impl.JWKSetSigningAndValidationServiceCacheService;

View File

@ -4,11 +4,6 @@
package org.mitre.openid.connect.client.service.impl;
import java.net.URISyntaxException;
import java.security.NoSuchAlgorithmException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.http.client.utils.URIBuilder;
import org.mitre.jwt.signer.service.JwtSigningAndValidationService;

View File

@ -1,10 +1,5 @@
package org.mitre.openid.connect.client;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* Unit test for OIDCAuthenticationFilter

View File

@ -5,7 +5,6 @@ package org.mitre.jose;
import javax.persistence.Basic;
import javax.persistence.Embeddable;
import javax.persistence.Entity;
import javax.persistence.Transient;
import com.google.common.base.Strings;

View File

@ -9,7 +9,6 @@ import javax.persistence.Transient;
import com.google.common.base.Strings;
import com.nimbusds.jose.EncryptionMethod;
import com.nimbusds.jose.JWEAlgorithm;
/**
* @author jricher

View File

@ -5,8 +5,6 @@ package org.mitre.jose;
import javax.persistence.Basic;
import javax.persistence.Embeddable;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Transient;
import com.google.common.base.Strings;

View File

@ -16,7 +16,6 @@
package org.mitre.jwt.signer.service;
import java.security.NoSuchAlgorithmException;
import java.security.PublicKey;
import java.util.Map;
import com.nimbusds.jose.JWSAlgorithm;

View File

@ -3,12 +3,6 @@
*/
package org.mitre.jwt.signer.service.impl;
import java.math.BigInteger;
import java.security.KeyFactory;
import java.security.interfaces.RSAPublicKey;
import java.security.spec.RSAPublicKeySpec;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ExecutionException;
import org.apache.http.client.HttpClient;
@ -22,12 +16,7 @@ import org.springframework.web.client.RestTemplate;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.nimbusds.jose.JWSVerifier;
import com.nimbusds.jose.crypto.RSASSAVerifier;
import com.nimbusds.jose.jwk.JWK;
import com.nimbusds.jose.jwk.JWKSet;
import com.nimbusds.jose.jwk.KeyType;
import com.nimbusds.jose.jwk.RSAKey;
/**
*

View File

@ -416,6 +416,7 @@ public class ClientDetailsEntity implements ClientDetails {
/**
* passthrough for SECOAUTH api
*/
@Override
public Set<String> getAuthorizedGrantTypes() {
return getGrantTypes();
}
@ -501,6 +502,7 @@ public class ClientDetailsEntity implements ClientDetails {
/**
* @return the resourceIds
*/
@Override
@ElementCollection(fetch = FetchType.EAGER)
@CollectionTable(
name="client_resource",

View File

@ -116,6 +116,7 @@ public class OAuth2AccessTokenEntity implements OAuth2AccessToken {
/**
* Get all additional information to be sent to the serializer. Inserts a copy of the IdToken (in JWT String form).
*/
@Override
@Transient
public Map<String, Object> getAdditionalInformation() {
Map<String, Object> map = new HashMap<String, Object>(); //super.getAdditionalInformation();
@ -161,6 +162,7 @@ public class OAuth2AccessTokenEntity implements OAuth2AccessToken {
/**
* Get the string-encoded value of this access token.
*/
@Override
@Basic
@Column(name="token_value")
public String getValue() {
@ -177,6 +179,7 @@ public class OAuth2AccessTokenEntity implements OAuth2AccessToken {
setJwt(JWTParser.parse(value));
}
@Override
@Basic
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
public Date getExpiration() {
@ -187,6 +190,7 @@ public class OAuth2AccessTokenEntity implements OAuth2AccessToken {
this.expiration = expiration;
}
@Override
@Basic
@Column(name="token_type")
public String getTokenType() {
@ -197,6 +201,7 @@ public class OAuth2AccessTokenEntity implements OAuth2AccessToken {
this.tokenType = tokenType;
}
@Override
@ManyToOne
@JoinColumn(name="refresh_token_id")
public OAuth2RefreshTokenEntity getRefreshToken() {
@ -216,6 +221,7 @@ public class OAuth2AccessTokenEntity implements OAuth2AccessToken {
setRefreshToken((OAuth2RefreshTokenEntity)refreshToken);
}
@Override
@ElementCollection(fetch=FetchType.EAGER)
@CollectionTable(
joinColumns=@JoinColumn(name="owner_id"),
@ -229,6 +235,7 @@ public class OAuth2AccessTokenEntity implements OAuth2AccessToken {
this.scope = scope;
}
@Override
@Transient
public boolean isExpired() {
return getExpiration() == null ? false : System.currentTimeMillis() > getExpiration().getTime();

View File

@ -39,9 +39,7 @@ import javax.persistence.Transient;
import org.springframework.security.oauth2.common.OAuth2RefreshToken;
import com.nimbusds.jwt.JWT;
import com.nimbusds.jwt.JWTClaimsSet;
import com.nimbusds.jwt.JWTParser;
import com.nimbusds.jwt.PlainJWT;
/**
* @author jricher
@ -114,6 +112,7 @@ public class OAuth2RefreshTokenEntity implements OAuth2RefreshToken {
/**
* Get the JWT-encoded value of this token
*/
@Override
@Basic
@Column(name="token_value")
public String getValue() {

View File

@ -27,6 +27,7 @@ public interface ClientDetailsEntityService extends ClientDetailsService {
public ClientDetailsEntity getClientById(Long id);
@Override
public ClientDetailsEntity loadClientByClientId(String clientId) throws OAuth2Exception;
public void deleteClient(ClientDetailsEntity client);

View File

@ -26,6 +26,7 @@ import org.springframework.security.oauth2.provider.token.ResourceServerTokenSer
public interface OAuth2TokenEntityService extends AuthorizationServerTokenServices, ResourceServerTokenServices {
@Override
public OAuth2AccessTokenEntity readAccessToken(String accessTokenValue);
public OAuth2RefreshTokenEntity getRefreshToken(String refreshTokenValue);
@ -44,6 +45,7 @@ public interface OAuth2TokenEntityService extends AuthorizationServerTokenServic
public OAuth2RefreshTokenEntity saveRefreshToken(OAuth2RefreshTokenEntity refreshToken);
@Override
public OAuth2AccessTokenEntity getAccessToken(OAuth2Authentication authentication);
public OAuth2AccessTokenEntity getAccessTokenById(Long id);

View File

@ -17,7 +17,6 @@ package org.mitre.oauth2.service.impl;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;

View File

@ -358,6 +358,7 @@ public class DefaultUserInfo implements UserInfo {
/**
* @return the birthdate
*/
@Override
@Basic
@Column(name="birthdate")
public String getBirthdate() {
@ -366,6 +367,7 @@ public class DefaultUserInfo implements UserInfo {
/**
* @param birthdate the birthdate to set
*/
@Override
public void setBirthdate(String birthdate) {
this.birthdate = birthdate;
}

View File

@ -1,6 +1,7 @@
package org.mitre.openid.connect.repository;
import java.util.Collection;
import org.mitre.openid.connect.model.Nonce;
/**

View File

@ -46,6 +46,7 @@ public class JpaOAuth2ClientRepository implements OAuth2ClientRepository {
this.manager = manager;
}
@Override
public ClientDetailsEntity getById(Long id) {
return manager.find(ClientDetailsEntity.class, id);
}

View File

@ -3,6 +3,9 @@
*/
package org.mitre.oauth2.repository.impl;
import static org.mitre.util.jpa.JpaUtil.getSingleResult;
import static org.mitre.util.jpa.JpaUtil.saveOrUpdate;
import java.util.LinkedHashSet;
import java.util.Set;
@ -15,9 +18,6 @@ import org.mitre.oauth2.repository.SystemScopeRepository;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import static org.mitre.util.jpa.JpaUtil.getSingleResult;
import static org.mitre.util.jpa.JpaUtil.saveOrUpdate;
/**
* @author jricher
*

View File

@ -101,6 +101,7 @@ public class DefaultOAuth2ClientDetailsEntityService implements ClientDetailsEnt
/**
* Get the client by its internal ID
*/
@Override
public ClientDetailsEntity getClientById(Long id) {
ClientDetailsEntity client = clientRepository.getById(id);

View File

@ -84,6 +84,7 @@ public class TokenIntrospectionView extends AbstractView {
})
.registerTypeAdapter(OAuth2AccessTokenEntity.class, new JsonSerializer<OAuth2AccessTokenEntity>() {
@Override
public JsonElement serialize(OAuth2AccessTokenEntity src, Type typeOfSrc, JsonSerializationContext context) {
JsonObject token = new JsonObject();

View File

@ -5,9 +5,6 @@ package org.mitre.oauth2.web;
import java.util.Set;
import javax.persistence.EntityExistsException;
import javax.persistence.TransactionRequiredException;
import org.mitre.oauth2.model.SystemScope;
import org.mitre.oauth2.service.SystemScopeService;
import org.slf4j.Logger;

View File

@ -25,7 +25,6 @@ import javax.persistence.TypedQuery;
import org.mitre.openid.connect.model.ApprovedSite;
import org.mitre.openid.connect.repository.ApprovedSiteRepository;
import org.mitre.util.jpa.JpaUtil;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

View File

@ -8,7 +8,6 @@ import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;
import org.mitre.openid.connect.model.ApprovedSite;
import org.mitre.openid.connect.model.Nonce;
import org.mitre.openid.connect.repository.NonceRepository;
import org.springframework.stereotype.Repository;

View File

@ -15,8 +15,8 @@
******************************************************************************/
package org.mitre.openid.connect.repository.impl;
import static org.mitre.util.jpa.JpaUtil.saveOrUpdate;
import static org.mitre.util.jpa.JpaUtil.getSingleResult;
import static org.mitre.util.jpa.JpaUtil.saveOrUpdate;
import java.util.Collection;

View File

@ -29,6 +29,7 @@ public class DefaultNonceService implements NonceService, InitializingBean {
/**
* Make sure that the nonce storage duration was set
*/
@Override
public void afterPropertiesSet() throws Exception {
if (nonceStorageDuration == null) {
logger.error("Nonce storage duration must be set!");

View File

@ -17,11 +17,9 @@ import org.mitre.jose.JWSAlgorithmEmbed;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
import org.springframework.validation.BeanPropertyBindingResult;
import org.springframework.web.servlet.view.AbstractView;
import com.google.gson.ExclusionStrategy;
import com.google.gson.FieldAttributes;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
@ -85,6 +83,7 @@ public abstract class AbstractClientEntityView extends AbstractView {
protected abstract ExclusionStrategy getExclusionStrategy();
@Override
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) {
response.setContentType("application/json");

View File

@ -3,34 +3,14 @@
*/
package org.mitre.openid.connect.view;
import java.io.IOException;
import java.io.Writer;
import java.lang.reflect.Type;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.mitre.jose.JWEAlgorithmEmbed;
import org.mitre.jose.JWEEncryptionMethodEmbed;
import org.mitre.jose.JWSAlgorithmEmbed;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
import org.springframework.validation.BeanPropertyBindingResult;
import org.springframework.web.servlet.view.AbstractView;
import com.google.common.collect.ImmutableSet;
import com.google.gson.ExclusionStrategy;
import com.google.gson.FieldAttributes;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
/**
*
@ -48,9 +28,11 @@ public class ClientEntityViewForAdmins extends AbstractClientEntityView {
/**
* @return
*/
@Override
protected ExclusionStrategy getExclusionStrategy() {
return new ExclusionStrategy() {
@Override
public boolean shouldSkipField(FieldAttributes f) {
if (blacklistedFields.contains(f.getName())) {
return true;
@ -59,6 +41,7 @@ public class ClientEntityViewForAdmins extends AbstractClientEntityView {
}
}
@Override
public boolean shouldSkipClass(Class<?> clazz) {
// skip the JPA binding wrapper
if (clazz.equals(BeanPropertyBindingResult.class)) {

View File

@ -3,34 +3,14 @@
*/
package org.mitre.openid.connect.view;
import java.io.IOException;
import java.io.Writer;
import java.lang.reflect.Type;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.mitre.jose.JWEAlgorithmEmbed;
import org.mitre.jose.JWEEncryptionMethodEmbed;
import org.mitre.jose.JWSAlgorithmEmbed;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
import org.springframework.validation.BeanPropertyBindingResult;
import org.springframework.web.servlet.view.AbstractView;
import com.google.common.collect.ImmutableSet;
import com.google.gson.ExclusionStrategy;
import com.google.gson.FieldAttributes;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
/**
*
@ -53,6 +33,7 @@ public class ClientEntityViewForUsers extends AbstractClientEntityView {
protected ExclusionStrategy getExclusionStrategy() {
return new ExclusionStrategy() {
@Override
public boolean shouldSkipField(FieldAttributes f) {
// whitelist the handful of fields that are good
if (whitelistedFields.contains(f.getName())) {
@ -62,6 +43,7 @@ public class ClientEntityViewForUsers extends AbstractClientEntityView {
}
}
@Override
public boolean shouldSkipClass(Class<?> clazz) {
// skip the JPA binding wrapper
if (clazz.equals(BeanPropertyBindingResult.class)) {

View File

@ -55,6 +55,7 @@ public class JSONUserInfoView extends AbstractView {
/* (non-Javadoc)
* @see org.springframework.web.servlet.view.AbstractView#renderMergedOutputModel(java.util.Map, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
@Override
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) {
UserInfo userInfo = (UserInfo) model.get("userInfo");
@ -64,11 +65,13 @@ public class JSONUserInfoView extends AbstractView {
Gson gson = new GsonBuilder()
.setExclusionStrategies(new ExclusionStrategy() {
@Override
public boolean shouldSkipField(FieldAttributes f) {
return false;
}
@Override
public boolean shouldSkipClass(Class<?> clazz) {
// skip the JPA binding wrapper
if (clazz.equals(BeanPropertyBindingResult.class)) {

View File

@ -40,11 +40,13 @@ public class JsonApprovedSiteView extends AbstractView {
private Gson gson = new GsonBuilder()
.setExclusionStrategies(new ExclusionStrategy() {
@Override
public boolean shouldSkipField(FieldAttributes f) {
return false;
}
@Override
public boolean shouldSkipClass(Class<?> clazz) {
// skip the JPA binding wrapper
if (clazz.equals(BeanPropertyBindingResult.class)) {
@ -67,6 +69,7 @@ public class JsonApprovedSiteView extends AbstractView {
.setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ")
.create();
@Override
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) {
response.setContentType("application/json");

View File

@ -34,11 +34,13 @@ public class JsonEntityView extends AbstractView {
private Gson gson = new GsonBuilder()
.setExclusionStrategies(new ExclusionStrategy() {
@Override
public boolean shouldSkipField(FieldAttributes f) {
return false;
}
@Override
public boolean shouldSkipClass(Class<?> clazz) {
// skip the JPA binding wrapper
if (clazz.equals(BeanPropertyBindingResult.class)) {
@ -52,6 +54,7 @@ public class JsonEntityView extends AbstractView {
.setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ")
.create();
@Override
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) {
response.setContentType("application/json");

View File

@ -32,11 +32,13 @@ public class JsonErrorView extends AbstractView {
private Gson gson = new GsonBuilder()
.setExclusionStrategies(new ExclusionStrategy() {
@Override
public boolean shouldSkipField(FieldAttributes f) {
return false;
}
@Override
public boolean shouldSkipClass(Class<?> clazz) {
// skip the JPA binding wrapper
if (clazz.equals(BeanPropertyBindingResult.class)) {
@ -50,6 +52,7 @@ public class JsonErrorView extends AbstractView {
.setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ")
.create();
@Override
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) {
response.setContentType("application/json");

View File

@ -45,6 +45,7 @@ public class POCOUserInfoView extends AbstractView {
/* (non-Javadoc)
* @see org.springframework.web.servlet.view.AbstractView#renderMergedOutputModel(java.util.Map, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
@Override
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) {
UserInfo userInfo = (UserInfo) model.get("userInfo");
@ -54,11 +55,13 @@ public class POCOUserInfoView extends AbstractView {
Gson gson = new GsonBuilder()
.setExclusionStrategies(new ExclusionStrategy() {
@Override
public boolean shouldSkipField(FieldAttributes f) {
return false;
}
@Override
public boolean shouldSkipClass(Class<?> clazz) {
// skip the JPA binding wrapper
if (clazz.equals(BeanPropertyBindingResult.class)) {

View File

@ -31,11 +31,13 @@ public class StatsSummary extends AbstractView {
Gson gson = new GsonBuilder()
.setExclusionStrategies(new ExclusionStrategy() {
@Override
public boolean shouldSkipField(FieldAttributes f) {
return false;
}
@Override
public boolean shouldSkipClass(Class<?> clazz) {
// skip the JPA binding wrapper
if (clazz.equals(BeanPropertyBindingResult.class)) {

View File

@ -17,7 +17,6 @@ package org.mitre.openid.connect.web;
import java.util.Map;
import org.mitre.openid.connect.config.ConfigurationPropertiesBean;
import org.mitre.openid.connect.service.StatsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;

View File

@ -9,7 +9,6 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.mitre.openid.connect.model.UserInfo;
import org.mitre.openid.connect.repository.UserInfoRepository;
import org.mitre.openid.connect.service.UserInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.servlet.ModelAndView;

View File

@ -1,8 +1,9 @@
<h2>About</h2>
<p>This OpenID Connect service is built from the MITREid Connect
Open Source project started by The MITRE Corporation.</p>
<p>
This OpenID Connect service is built from the MITREid Connect Open Source project started by The MITRE Corporation.
</p>
<p>
More information about the project can be found on our GitHub page: <a href="http://github.com/mitreid-connect/">MTIREid Connect on GitHub</a>
There, you can submit bug reports, give feedback, or even contribute code patches for additional features you'd like to see.
More information about the project can be found on our GitHub page: <a
href="http://github.com/mitreid-connect/">MTIREid Connect on
GitHub</a> There, you can submit bug reports, give feedback, or even
contribute code patches for additional features you'd like to see.
</p>

View File

@ -1,5 +1,6 @@
<%@ tag language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %>
<%@ taglib prefix="security"
uri="http://www.springframework.org/security/tags"%>
<security:authorize access="hasRole('ROLE_ADMIN')">
<li class="nav-header">Administrative</li>
<li><a href="manage/#admin/clients">Manage Clients</a></li>

View File

@ -1,6 +1,9 @@
<h2>Contact</h2>
<p>
For general assistance, email Bob at <a href="mailto:email@address.com?Subject=OIDC%20Server%20Assistance">email@address.com</a>.
To offer feedback, email Sue at <a href="mailto:email@address.com?Subject=OIDC%20Server%20Feedback">email@address.com</a>.
To report a system failure or bug report, email Joe at <a href="mailto:email@address.com?Subject=OIDC%20Server%20Failure">email@address.com</a>.
For general assistance, email Bob at <a
href="mailto:email@address.com?Subject=OIDC%20Server%20Assistance">email@address.com</a>.
To offer feedback, email Sue at <a
href="mailto:email@address.com?Subject=OIDC%20Server%20Feedback">email@address.com</a>.
To report a system failure or bug report, email Joe at <a
href="mailto:email@address.com?Subject=OIDC%20Server%20Failure">email@address.com</a>.
</p>

View File

@ -1 +1,3 @@
Powered by <a href="https://github.com/mitreid-connect/">MITREid Connect</a> &copy; 2013 The MITRE Corporation.
Powered by
<a href="https://github.com/mitreid-connect/">MITREid Connect</a>
&copy; 2013 The MITRE Corporation.

View File

@ -3,20 +3,25 @@
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="o" tagdir="/WEB-INF/tags"%>
<div id="push"></div>
</div> <!-- end #wrap -->
</div>
<!-- end #wrap -->
<div id="footer">
<div class="container">
<p class="muted credit"><o:copyright /></p>
<p class="muted credit">
<o:copyright />
</p>
</div>
</div>
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script type="text/javascript" src="resources/bootstrap2/js/bootstrap.js"></script>
<script type="text/javascript"
src="resources/bootstrap2/js/bootstrap.js"></script>
<script type="text/javascript" src="resources/js/lib/underscore.js"></script>
<script type="text/javascript" src="resources/js/lib/backbone.js"></script>
<script type="text/javascript" src="resources/js/lib/purl.js"></script>
<script type="text/javascript" src="resources/js/lib/bootstrapx-clickover.js"></script>
<script type="text/javascript"
src="resources/js/lib/bootstrapx-clickover.js"></script>
<c:if test="${js != null && js != ''}">
<script type="text/javascript" src="resources/js/client.js"></script>
<script type="text/javascript" src="resources/js/grant.js"></script>

View File

@ -6,7 +6,8 @@
<head>
<c:set var="url">${pageContext.request.requestURL}</c:set>
<base href="${fn:substring(url, 0, fn:length(url) - fn:length(pageContext.request.requestURI))}${pageContext.request.contextPath}/" />
<base
href="${fn:substring(url, 0, fn:length(url) - fn:length(pageContext.request.requestURI))}${pageContext.request.contextPath}/" />
<meta charset="utf-8">
<title>OpenID Connect - ${title}</title>
@ -17,9 +18,7 @@
<!-- Le styles -->
<link href="resources/bootstrap2/css/bootstrap.min.css" rel="stylesheet">
<style type="text/css">
html,
body {
html,body {
height: 100%;
/* The html and body elements cannot have any padding or margin. */
}
@ -46,10 +45,10 @@
}
/* Set the fixed height of the footer here */
#push,
#footer {
#push,#footer {
min-height: 60px;
}
#footer {
background-color: #f5f5f5;
}
@ -67,16 +66,17 @@
}
a.brand {
background: url('${config.logoImageUrl}') no-repeat scroll 7px 7px transparent;
background: url('${config.logoImageUrl}') no-repeat scroll 7px 7px
transparent;
}
</style>
<link href="resources/bootstrap2/css/bootstrap-responsive.css" rel="stylesheet">
<link href="resources/bootstrap2/css/bootstrap-responsive.css"
rel="stylesheet">
<style type="text/css">
@media ( min-width : 768px) and (max-width: 979px) {
.main {
padding-top: 0px;
}
}
@media ( max-width : 767px) {
@ -87,8 +87,6 @@
padding-right: 20px;
}
}
</style>
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
@ -98,9 +96,12 @@
<!-- Le fav and touch icons -->
<link rel="shortcut icon" href="../bootstrap2/ico/favicon.ico">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../bootstrap2/ico/apple-touch-icon-114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../bootstrap2/ico/apple-touch-icon-72-precomposed.png">
<link rel="apple-touch-icon-precomposed" href="../bootstrap2/ico/apple-touch-icon-57-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114"
href="../bootstrap2/ico/apple-touch-icon-114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72"
href="../bootstrap2/ico/apple-touch-icon-72-precomposed.png">
<link rel="apple-touch-icon-precomposed"
href="../bootstrap2/ico/apple-touch-icon-57-precomposed.png">
<!-- Load jQuery up here so that we can use in-page functions -->
<script type="text/javascript" src="resources/js/lib/jquery.js"></script>
@ -113,7 +114,10 @@
<strong>Warning!</strong>
<div class="modal-body"></div>
</div>
<div class="modal-footer"><button class="btn primary" type="button" onclick="$('#modalAlert').modal('hide');">OK</button></div>
<div class="modal-footer">
<button class="btn primary" type="button"
onclick="$('#modalAlert').modal('hide');">OK</button>
</div>
</div>
<div id="wrap">

View File

@ -1,5 +1,9 @@
<h2>About</h2>
<p>This OpenID Connect service is built from the MITREid Connect Open Source project started by The MITRE Corporation.</p>
<p>This OpenID Connect service is built from the MITREid Connect
Open Source project started by The MITRE Corporation.</p>
<p><a class="btn" href="http://github.com/mitreid-connect/">More &raquo;</a></p>
<p>
<a class="btn" href="http://github.com/mitreid-connect/">More
&raquo;</a>
</p>

View File

@ -1,5 +1,9 @@
<h2>Contact</h2>
<p>For more information or support, contact the administrators of this system.</p>
<p>For more information or support, contact the administrators of
this system.</p>
<p><a class="btn" href="mailto:idp@example.com?Subject=OpenID Connect">Email &raquo;</a></p>
<p>
<a class="btn" href="mailto:idp@example.com?Subject=OpenID Connect">Email
&raquo;</a>
</p>

View File

@ -1,8 +1,10 @@
<h2>Current Statistics</h2>
<p>There have been
<span class="label label-info">${statsSummary["userCount"]}</span> user${statsSummary["userCount"] == 1 ? "" : "s"}
of this system who have logged in to
<span class="label label-info">${statsSummary["clientCount"]}</span> total site${statsSummary["clientCount"] == 1 ? "" : "s"},
for a total of
<span class="label label-info">${statsSummary["approvalCount"]}</span> site approval${statsSummary["approvalCount"] == 1 ? "" : "s"}.</p>
<p>
There have been <span class="label label-info">${statsSummary["userCount"]}</span>
user${statsSummary["userCount"] == 1 ? "" : "s"} of this system who
have logged in to <span class="label label-info">${statsSummary["clientCount"]}</span>
total site${statsSummary["clientCount"] == 1 ? "" : "s"}, for a total
of <span class="label label-info">${statsSummary["approvalCount"]}</span>
site approval${statsSummary["approvalCount"] == 1 ? "" : "s"}.
</p>

View File

@ -1,8 +1,11 @@
<h1>Welcome!</h1>
<p>OpenID Connect is a next-generation protocol built on top of the OAuth2 authorization framework.
OpenID Connect lets you log into a remote site using your identity without exposing your
credentials, like a username and password.
</p>
<p>OpenID Connect is a next-generation protocol built on top of the
OAuth2 authorization framework. OpenID Connect lets you log into a
remote site using your identity without exposing your credentials, like
a username and password.</p>
<p><a class="btn btn-primary btn-large" href="http://openid.net/connect/">Learn more &raquo;</a></p>
<p>
<a class="btn btn-primary btn-large" href="http://openid.net/connect/">Learn
more &raquo;</a>
</p>

View File

@ -1,4 +1,5 @@
<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %>
<%@ taglib prefix="security"
uri="http://www.springframework.org/security/tags"%>
<%@ taglib prefix="o" tagdir="/WEB-INF/tags"%>
<div class="span2 visible-desktop">
@ -8,13 +9,18 @@
<ul class="nav nav-list">
<o:actionmenu />
</ul>
</div><!--/.well -->
</div>
<!--/.well -->
</security:authorize>
<security:authorize access="!hasRole('ROLE_USER')">
<div class="well">
<div>You are not logged in.</div>
<hr />
<div class="row-fluid"><a class="btn btn-primary span12" href="login"><i class="icon-user icon-white"></i> Log in</a></div>
<div class="row-fluid">
<a class="btn btn-primary span12" href="login"><i
class="icon-user icon-white"></i> Log in</a>
</div>
</div>
</security:authorize>
</div><!--/span-->
</div>
<!--/span-->

View File

@ -1,8 +1,10 @@
<h2>Current Statistics</h2>
<p>There have been
<span class="label label-info">${statsSummary["userCount"]}</span> user${statsSummary["userCount"] == 1 ? "" : "s"}
of this system who have logged in to
<span class="label label-info">${statsSummary["clientCount"]}</span> total site${statsSummary["clientCount"] == 1 ? "" : "s"},
for a total of
<span class="label label-info">${statsSummary["approvalCount"]}</span> site approval${statsSummary["approvalCount"] == 1 ? "" : "s"}.</p>
<p>
There have been <span class="label label-info">${statsSummary["userCount"]}</span>
user${statsSummary["userCount"] == 1 ? "" : "s"} of this system who
have logged in to <span class="label label-info">${statsSummary["clientCount"]}</span>
total site${statsSummary["clientCount"] == 1 ? "" : "s"}, for a total
of <span class="label label-info">${statsSummary["approvalCount"]}</span>
site approval${statsSummary["approvalCount"] == 1 ? "" : "s"}.
</p>

View File

@ -1,6 +1,7 @@
<%@attribute name="pageName" required="false"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %>
<%@ taglib prefix="security"
uri="http://www.springframework.org/security/tags"%>
<%@ taglib prefix="o" tagdir="/WEB-INF/tags"%>
<c:choose>
<c:when test="${ not empty userInfo.preferredUsername }">
@ -16,8 +17,10 @@
</c:when>
<c:otherwise>
<c:choose>
<c:when test="${ not empty userInfo.givenName || not empty userInfo.familyName }">
<c:set var="longName" value="${ userInfo.givenName } {$ userInfo.familyName }" />
<c:when
test="${ not empty userInfo.givenName || not empty userInfo.familyName }">
<c:set var="longName"
value="${ userInfo.givenName } {$ userInfo.familyName }" />
</c:when>
<c:otherwise>
<c:set var="longName" value="${ shortName }" />
@ -28,10 +31,10 @@
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<button class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<button class="btn btn-navbar" data-toggle="collapse"
data-target=".nav-collapse">
<span class="icon-bar"></span> <span class="icon-bar"></span> <span
class="icon-bar"></span>
</button>
<a class="brand" href="">${config.topbarTitle}</a>
<div class="nav-collapse collapse">
@ -72,12 +75,12 @@
<security:authorize access="hasRole('ROLE_USER')">
<li class="dropdown hidden-desktop">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Action <b class="caret"></b></a>
<li class="dropdown hidden-desktop"><a href="#"
class="dropdown-toggle" data-toggle="dropdown">Action <b
class="caret"></b></a>
<ul class="dropdown-menu">
<o:actionmenu />
</ul>
</li>
</ul></li>
</security:authorize>
@ -85,20 +88,26 @@
<ul class="nav pull-right">
<security:authorize access="hasRole('ROLE_USER')">
<div class="btn-group">
<a class="btn btn-primary btn-small dropdown-toggle" data-toggle="dropdown" href=""><i class="icon-user icon-white"></i> ${ shortName } <span class="caret"></span></a>
<a class="btn btn-primary btn-small dropdown-toggle"
data-toggle="dropdown" href=""><i
class="icon-user icon-white"></i> ${ shortName } <span
class="caret"></span></a>
<ul class="dropdown-menu">
<li><a>${ longName }</a></li>
<li class="divider"></li>
<li><a href="logout"><i class="icon-remove"></i> Log out</a></li>
<li><a href="logout"><i class="icon-remove"></i> Log
out</a></li>
</ul>
</div>
</security:authorize>
<security:authorize access="!hasRole('ROLE_USER')">
<a class="btn btn-primary btn-small" href="login"><i class="icon-user icon-white"></i> Log in</a>
<a class="btn btn-primary btn-small" href="login"><i
class="icon-user icon-white"></i> Log in</a>
</security:authorize>
</ul>
</div><!--/.nav-collapse -->
</div>
<!--/.nav-collapse -->
</div>
</div>
</div>

View File

@ -1,6 +1,7 @@
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib prefix="o" tagdir="/WEB-INF/tags"%>
<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %>
<%@ taglib prefix="security"
uri="http://www.springframework.org/security/tags"%>
<!-- TODO: highlight proper section of topbar; what is the right way to do this? -->

View File

@ -1,6 +1,7 @@
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib prefix="o" tagdir="/WEB-INF/tags"%>
<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %>
<%@ taglib prefix="security"
uri="http://www.springframework.org/security/tags"%>
<!-- TODO: highlight proper section of topbar; what is the right way to do this? -->

View File

@ -1,6 +1,7 @@
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib prefix="o" tagdir="/WEB-INF/tags"%>
<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %>
<%@ taglib prefix="security"
uri="http://www.springframework.org/security/tags"%>
<o:header title="welcome" />
<o:topbar />

View File

@ -1,4 +1,5 @@
<%@ taglib prefix="authz" uri="http://www.springframework.org/security/tags" %>
<%@ taglib prefix="authz"
uri="http://www.springframework.org/security/tags"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="o" tagdir="/WEB-INF/tags"%>
<o:header title="Log In" />
@ -17,14 +18,28 @@ $(document).ready(function() {
<h1>Login with Username and Password</h1>
<c:if test="${ param.error != null }">
<div class="alert alert-error">The system was unable to log you in. Please try again.</div>
<div class="alert alert-error">The system was unable to log you
in. Please try again.</div>
</c:if>
<form action="<%=request.getContextPath()%>/j_spring_security_check" method="POST" class="well span3 offset1">
<form action="<%=request.getContextPath()%>/j_spring_security_check"
method="POST" class="well span3 offset1">
<fieldset>
<div class="input-prepend"><span class="add-on"><i class="icon-user"></i></span><input type="text" name="j_username" id="j_username" value="" spellcheck="false" autocomplete="off" autocapitalize="off" autocorrect="off" placeholder="Username"></div>
<div class="input-prepend"><span class="add-on"><i class="icon-lock"></i></span><input type="password" name="j_password" id="j_password" spellcheck="false" autocomplete="off" autocapitalize="off" autocorrect="off" placeholder="Password"></div>
<div class="form-actions"><input type="submit" name="submit" value="Login" class="btn"></div>
<div class="input-prepend">
<span class="add-on"><i class="icon-user"></i></span><input
type="text" name="j_username" id="j_username" value=""
spellcheck="false" autocomplete="off" autocapitalize="off"
autocorrect="off" placeholder="Username">
</div>
<div class="input-prepend">
<span class="add-on"><i class="icon-lock"></i></span><input
type="password" name="j_password" id="j_password"
spellcheck="false" autocomplete="off" autocapitalize="off"
autocorrect="off" placeholder="Password">
</div>
<div class="form-actions">
<input type="submit" name="submit" value="Login" class="btn">
</div>
</fieldset>
</form>

View File

@ -9,9 +9,7 @@
<div class="span10">
<div class="content span12">
<o:breadcrumbs crumb="Manage Clients" />
<span id="content">
loading...
</span>
<span id="content"> loading... </span>
</div>
</div>
</div>

View File

@ -1,7 +1,11 @@
<%@ page import="org.springframework.security.core.AuthenticationException" %>
<%@ page import="org.springframework.security.oauth2.common.exceptions.UnapprovedClientAuthenticationException" %>
<%@ page import="org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter" %>
<%@ taglib prefix="authz" uri="http://www.springframework.org/security/tags" %>
<%@ page
import="org.springframework.security.core.AuthenticationException"%>
<%@ page
import="org.springframework.security.oauth2.common.exceptions.UnapprovedClientAuthenticationException"%>
<%@ page
import="org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter"%>
<%@ taglib prefix="authz"
uri="http://www.springframework.org/security/tags"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="o" tagdir="/WEB-INF/tags"%>
<o:header title="Approve Access" />
@ -11,9 +15,10 @@
<div class="alert-message error">
<a href="#" class="close">&times;</a>
<p><strong>Access could not be granted.</strong>
(<%= ((AuthenticationException) session.getAttribute(AbstractAuthenticationProcessingFilter.SPRING_SECURITY_LAST_EXCEPTION_KEY)).getMessage() %>
)</p>
<p>
<strong>Access could not be granted.</strong> (<%= ((AuthenticationException) session.getAttribute(AbstractAuthenticationProcessingFilter.SPRING_SECURITY_LAST_EXCEPTION_KEY)).getMessage() %>
)
</p>
</div>
<% } %>
<c:remove scope="session" var="SPRING_SECURITY_LAST_EXCEPTION" />
@ -21,7 +26,8 @@
<div class="well" style="text-align: center">
<h1>Approve New Site</h1>
<form name="confirmationForm" action="<%=request.getContextPath()%>/authorize" method="post">
<form name="confirmationForm"
action="<%=request.getContextPath()%>/authorize" method="post">
<div class="row">
<div class="span4 offset2 well-small" style="text-align: left">
@ -29,42 +35,47 @@
<%-- TODO: wire up to stats engine and customize display of this block --%>
<c:if test="${ client.dynamicallyRegistered }">
<div class="alert alert-block alert-info">
<h4><i class="icon-globe"></i> Caution:</h4>
This client was dynamically registered and has very few
other users on this system.
<h4>
<i class="icon-globe"></i> Caution:
</h4>
This client was dynamically registered and has very few other
users on this system.
</div>
</c:if>
<c:if test="${ not empty client.logoUri }">
<ul class="thumbnails">
<li class="span4">
<div class="thumbnail"><img src="${client.logoUri }"/></div>
<div class="thumbnail">
<img src="${client.logoUri }" />
</div>
</li>
</ul>
</c:if>
Do you authorize
"<c:choose>
Do you authorize "
<c:choose>
<c:when test="${empty client.clientName}">
<c:out value="${client.clientId}" />
</c:when>
<c:otherwise>
<c:out value="${client.clientName}" />
</c:otherwise>
</c:choose>"
to sign you into their site using your identity?
</c:choose>
" to sign you into their site using your identity?
<c:if test="${not empty client.clientDescription}">
<div>
<a class="small" href="#" onclick="$('#description').toggle('fast'); return false;"><i class="icon-chevron-right"></i> more information</a>
<a class="small" href="#"
onclick="$('#description').toggle('fast'); return false;"><i
class="icon-chevron-right"></i> more information</a>
</div>
<p>
<blockquote id="description" style="display: none">
${client.clientDescription}
</blockquote>
${client.clientDescription}</blockquote>
</p>
</c:if>
<div>
<small>
<strong>Redirect URI: </strong><c:out value="${redirect_uri}"/>
<small> <strong>Redirect URI: </strong>
<c:out value="${redirect_uri}" />
</small>
</div>
</div>
@ -74,12 +85,13 @@
<c:forEach var="scope" items="${ scopes }">
<label for="scope_${ scope.value }" class="checkbox">
<input type="checkbox" name="scope_${ scope.value }" id="scope_${ scope.value }" value="${ scope.value }" checked="checked">
<c:if test="${ not empty scope.icon }">
<label for="scope_${ scope.value }" class="checkbox"> <input
type="checkbox" name="scope_${ scope.value }"
id="scope_${ scope.value }" value="${ scope.value }"
checked="checked"> <c:if
test="${ not empty scope.icon }">
<i class="icon-${ scope.icon }"></i>
</c:if>
<c:choose>
</c:if> <c:choose>
<c:when test="${ not empty scope.description }">
${ scope.description }
</c:when>
@ -95,16 +107,15 @@
<fieldset style="text-align: left" class="well">
<legend style="margin-bottom: 0;">Remember this decision:</legend>
<label for="remember-forever" class="radio">
<input type="radio" name="remember" id="remember-forever" value="until-revoked" checked="checked">
remember this decision until I revoke it
</label>
<label for="remember-hour" class="radio">
<input type="radio" name="remember" id="remember-hour" value="one-hour">
<label for="remember-forever" class="radio"> <input
type="radio" name="remember" id="remember-forever"
value="until-revoked" checked="checked"> remember this
decision until I revoke it
</label> <label for="remember-hour" class="radio"> <input
type="radio" name="remember" id="remember-hour" value="one-hour">
remember this decision for one hour
</label>
<label for="remember-not" class="radio">
<input type="radio" name="remember" id="remember-not" value="none">
</label> <label for="remember-not" class="radio"> <input
type="radio" name="remember" id="remember-not" value="none">
prompt me again next time
</label>
</fieldset>
@ -114,11 +125,13 @@
<div class="row">
<input id="user_oauth_approval" name="user_oauth_approval" value="true" type="hidden"/>
<input name="authorize" value="Authorize" type="submit"
onclick="$('#user_oauth_approval').attr('value',true)" class="btn btn-success btn-large"/>
&nbsp;
<input name="deny" value="Deny" type="submit" onclick="$('#user_oauth_approval').attr('value',false)"
<input id="user_oauth_approval" name="user_oauth_approval"
value="true" type="hidden" /> <input name="authorize"
value="Authorize" type="submit"
onclick="$('#user_oauth_approval').attr('value',true)"
class="btn btn-success btn-large" /> &nbsp; <input name="deny"
value="Deny" type="submit"
onclick="$('#user_oauth_approval').attr('value',false)"
class="btn btn-secondary btn-large" />
</div>

View File

@ -1,6 +1,7 @@
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib prefix="o" tagdir="/WEB-INF/tags"%>
<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %>
<%@ taglib prefix="security"
uri="http://www.springframework.org/security/tags"%>
<!-- TODO: highlight proper section of topbar; what is the right way to do this? -->

View File

@ -3,7 +3,8 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
<!-- The definition of the Root Spring Container shared by all Servlets
and Filters -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>

View File

@ -7,8 +7,8 @@
*
* Designed and built with all the love in the world @twitter by @mdo and @fat.
*/
@-ms-viewport {
@
-ms-viewport {
width: device-width;
}
@ -16,8 +16,7 @@
*zoom: 1;
}
.clearfix:before,
.clearfix:after {
.clearfix:before,.clearfix:after {
display: table;
line-height: 0;
content: "";
@ -100,8 +99,7 @@
margin-left: -30px;
*zoom: 1;
}
.row:before,
.row:after {
.row:before,.row:after {
display: table;
line-height: 0;
content: "";
@ -114,10 +112,8 @@
min-height: 1px;
margin-left: 30px;
}
.container,
.navbar-static-top .container,
.navbar-fixed-top .container,
.navbar-fixed-bottom .container {
.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container
{
width: 1170px;
}
.span12 {
@ -196,8 +192,7 @@
width: 100%;
*zoom: 1;
}
.row-fluid:before,
.row-fluid:after {
.row-fluid:before,.row-fluid:after {
display: table;
line-height: 0;
content: "";
@ -366,72 +361,46 @@
margin-left: 8.547008547008547%;
*margin-left: 8.440625568285142%;
}
input,
textarea,
.uneditable-input {
input,textarea,.uneditable-input {
margin-left: 0;
}
.controls-row [class*="span"]+[class*="span"] {
margin-left: 30px;
}
input.span12,
textarea.span12,
.uneditable-input.span12 {
input.span12,textarea.span12,.uneditable-input.span12 {
width: 1156px;
}
input.span11,
textarea.span11,
.uneditable-input.span11 {
input.span11,textarea.span11,.uneditable-input.span11 {
width: 1056px;
}
input.span10,
textarea.span10,
.uneditable-input.span10 {
input.span10,textarea.span10,.uneditable-input.span10 {
width: 956px;
}
input.span9,
textarea.span9,
.uneditable-input.span9 {
input.span9,textarea.span9,.uneditable-input.span9 {
width: 856px;
}
input.span8,
textarea.span8,
.uneditable-input.span8 {
input.span8,textarea.span8,.uneditable-input.span8 {
width: 756px;
}
input.span7,
textarea.span7,
.uneditable-input.span7 {
input.span7,textarea.span7,.uneditable-input.span7 {
width: 656px;
}
input.span6,
textarea.span6,
.uneditable-input.span6 {
input.span6,textarea.span6,.uneditable-input.span6 {
width: 556px;
}
input.span5,
textarea.span5,
.uneditable-input.span5 {
input.span5,textarea.span5,.uneditable-input.span5 {
width: 456px;
}
input.span4,
textarea.span4,
.uneditable-input.span4 {
input.span4,textarea.span4,.uneditable-input.span4 {
width: 356px;
}
input.span3,
textarea.span3,
.uneditable-input.span3 {
input.span3,textarea.span3,.uneditable-input.span3 {
width: 256px;
}
input.span2,
textarea.span2,
.uneditable-input.span2 {
input.span2,textarea.span2,.uneditable-input.span2 {
width: 156px;
}
input.span1,
textarea.span1,
.uneditable-input.span1 {
input.span1,textarea.span1,.uneditable-input.span1 {
width: 56px;
}
.thumbnails {
@ -450,8 +419,7 @@
margin-left: -20px;
*zoom: 1;
}
.row:before,
.row:after {
.row:before,.row:after {
display: table;
line-height: 0;
content: "";
@ -464,10 +432,8 @@
min-height: 1px;
margin-left: 20px;
}
.container,
.navbar-static-top .container,
.navbar-fixed-top .container,
.navbar-fixed-bottom .container {
.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container
{
width: 724px;
}
.span12 {
@ -546,8 +512,7 @@
width: 100%;
*zoom: 1;
}
.row-fluid:before,
.row-fluid:after {
.row-fluid:before,.row-fluid:after {
display: table;
line-height: 0;
content: "";
@ -716,72 +681,46 @@
margin-left: 8.56353591160221%;
*margin-left: 8.457152932878806%;
}
input,
textarea,
.uneditable-input {
input,textarea,.uneditable-input {
margin-left: 0;
}
.controls-row [class*="span"]+[class*="span"] {
margin-left: 20px;
}
input.span12,
textarea.span12,
.uneditable-input.span12 {
input.span12,textarea.span12,.uneditable-input.span12 {
width: 710px;
}
input.span11,
textarea.span11,
.uneditable-input.span11 {
input.span11,textarea.span11,.uneditable-input.span11 {
width: 648px;
}
input.span10,
textarea.span10,
.uneditable-input.span10 {
input.span10,textarea.span10,.uneditable-input.span10 {
width: 586px;
}
input.span9,
textarea.span9,
.uneditable-input.span9 {
input.span9,textarea.span9,.uneditable-input.span9 {
width: 524px;
}
input.span8,
textarea.span8,
.uneditable-input.span8 {
input.span8,textarea.span8,.uneditable-input.span8 {
width: 462px;
}
input.span7,
textarea.span7,
.uneditable-input.span7 {
input.span7,textarea.span7,.uneditable-input.span7 {
width: 400px;
}
input.span6,
textarea.span6,
.uneditable-input.span6 {
input.span6,textarea.span6,.uneditable-input.span6 {
width: 338px;
}
input.span5,
textarea.span5,
.uneditable-input.span5 {
input.span5,textarea.span5,.uneditable-input.span5 {
width: 276px;
}
input.span4,
textarea.span4,
.uneditable-input.span4 {
input.span4,textarea.span4,.uneditable-input.span4 {
width: 214px;
}
input.span3,
textarea.span3,
.uneditable-input.span3 {
input.span3,textarea.span3,.uneditable-input.span3 {
width: 152px;
}
input.span2,
textarea.span2,
.uneditable-input.span2 {
input.span2,textarea.span2,.uneditable-input.span2 {
width: 90px;
}
input.span1,
textarea.span1,
.uneditable-input.span1 {
input.span1,textarea.span1,.uneditable-input.span1 {
width: 28px;
}
}
@ -791,9 +730,7 @@
padding-right: 20px;
padding-left: 20px;
}
.navbar-fixed-top,
.navbar-fixed-bottom,
.navbar-static-top {
.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top {
margin-right: -20px;
margin-left: -20px;
}
@ -815,17 +752,15 @@
.row-fluid {
width: 100%;
}
.row,
.thumbnails {
.row,.thumbnails {
margin-left: 0;
}
.thumbnails>li {
float: none;
margin-left: 0;
}
[class*="span"],
.uneditable-input[class*="span"],
.row-fluid [class*="span"] {
[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]
{
display: block;
float: none;
width: 100%;
@ -834,8 +769,7 @@
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.span12,
.row-fluid .span12 {
.span12,.row-fluid .span12 {
width: 100%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
@ -844,13 +778,8 @@
.row-fluid [class*="offset"]:first-child {
margin-left: 0;
}
.input-large,
.input-xlarge,
.input-xxlarge,
input[class*="span"],
select[class*="span"],
textarea[class*="span"],
.uneditable-input {
.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input
{
display: block;
width: 100%;
min-height: 30px;
@ -858,10 +787,8 @@
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.input-prepend input,
.input-append input,
.input-prepend input[class*="span"],
.input-append input[class*="span"] {
.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]
{
display: inline-block;
width: auto;
}
@ -892,8 +819,7 @@
display: block;
line-height: 20px;
}
input[type="checkbox"],
input[type="radio"] {
input[type="checkbox"],input[type="radio"] {
border: 1px solid #ccc;
}
.form-horizontal .control-label {
@ -912,8 +838,7 @@
padding-right: 10px;
padding-left: 10px;
}
.media .pull-left,
.media .pull-right {
.media .pull-left,.media .pull-right {
display: block;
float: none;
margin-bottom: 10px;
@ -940,8 +865,7 @@
body {
padding-top: 0;
}
.navbar-fixed-top,
.navbar-fixed-bottom {
.navbar-fixed-top,.navbar-fixed-bottom {
position: static;
}
.navbar-fixed-top {
@ -950,8 +874,7 @@
.navbar-fixed-bottom {
margin-top: 20px;
}
.navbar-fixed-top .navbar-inner,
.navbar-fixed-bottom .navbar-inner {
.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner {
padding: 5px;
}
.navbar .container {
@ -983,8 +906,7 @@
color: #777777;
text-shadow: none;
}
.nav-collapse .nav > li > a,
.nav-collapse .dropdown-menu a {
.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a {
padding: 9px 15px;
font-weight: bold;
color: #777777;
@ -1002,16 +924,15 @@
.nav-collapse .dropdown-menu li+li a {
margin-bottom: 2px;
}
.nav-collapse .nav > li > a:hover,
.nav-collapse .dropdown-menu a:hover {
.nav-collapse .nav>li>a:hover,.nav-collapse .dropdown-menu a:hover {
background-color: #f2f2f2;
}
.navbar-inverse .nav-collapse .nav > li > a,
.navbar-inverse .nav-collapse .dropdown-menu a {
.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a
{
color: #999999;
}
.navbar-inverse .nav-collapse .nav > li > a:hover,
.navbar-inverse .nav-collapse .dropdown-menu a:hover {
.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:hover
{
background-color: #111111;
}
.nav-collapse.in .btn-group {
@ -1039,30 +960,31 @@
.nav-collapse .open>.dropdown-menu {
display: block;
}
.nav-collapse .dropdown-menu:before,
.nav-collapse .dropdown-menu:after {
.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after {
display: none;
}
.nav-collapse .dropdown-menu .divider {
display: none;
}
.nav-collapse .nav > li > .dropdown-menu:before,
.nav-collapse .nav > li > .dropdown-menu:after {
.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after
{
display: none;
}
.nav-collapse .navbar-form,
.nav-collapse .navbar-search {
.nav-collapse .navbar-form,.nav-collapse .navbar-search {
float: none;
padding: 10px 15px;
margin: 10px 0;
border-top: 1px solid #f2f2f2;
border-bottom: 1px solid #f2f2f2;
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0
rgba(255, 255, 255, 0.1);
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0
rgba(255, 255, 255, 0.1);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0
rgba(255, 255, 255, 0.1);
}
.navbar-inverse .nav-collapse .navbar-form,
.navbar-inverse .nav-collapse .navbar-search {
.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search
{
border-top-color: #111111;
border-bottom-color: #111111;
}
@ -1070,8 +992,7 @@
float: none;
margin-left: 0;
}
.nav-collapse,
.nav-collapse.collapse {
.nav-collapse,.nav-collapse.collapse {
height: 0;
overflow: hidden;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long