当RAILS中需要指定一些方法必须在ssl在访问的时候,就会用的这样的插件
github官网
当前版
简单版
class ApplicationController < ActiveRecord::Base
include SslRequirement
end
class AccountController < ApplicationController
ssl_required :signup, :payment
ssl_allowed :index
def signup
# Non-SSL access will be redirected to SSL
end
def payment
# Non-SSL access will be redirected to SSL
end
def index
# This action will work either with or without SSL
end
def other
# SSL access will be redirected to non-SSL
end
end
然而,在使用的时候,遇到了问题。mod_rewrite没有设置HTTP_X_FORWARDED_PROTO头,所以,从mongrel来的请求不能确认是https的,所以就需要下面的修改
def ensure_proper_protocol
#ssl_requirement.rb, line 49
return true if ssl_allowed?
if ssl_required? && !(request.ssl? || request.port == 443)
redirect_to "https://" + request.host + request.request_uri
return false
elsif (request.ssl? || request.port == 443) && !ssl_required?
redirect_to "http://" + request.host + request.request_uri
return false
end
end
引用
You can overwrite the protected method ssl_required? to rely on other things
than just the declarative specification. Say, only premium accounts get SSL.
P.S.: Beware when you include the SslRequirement module. At the time of
inclusion, it'll add the before_filter that validates the declarations. Some
times you'll want to run other before_filters before that. They should then be
declared ahead of including this module.
分享到:
相关推荐
在Rails开发中使用SSL可以帮助开发者提前发现和解决可能在生产环境中出现的SSL相关问题。 首先,你需要一个有效的SSL证书。在开发环境中,可以使用自签名证书。使用OpenSSL工具生成自签名证书: ```bash openssl ...
标题 "rails 部署 nginx" 涉及到的是在Web开发中使用Ruby on Rails框架结合Nginx服务器进行应用部署的相关知识。Nginx以其高性能、稳定性以及反向代理和负载均衡能力,常被用作Rails应用的前端服务器。下面将详细...
- **面向对象编程在Rails中的应用** - **数据库交互** - **RESTful架构** - **测试驱动开发(TDD)与行为驱动开发(BDD)** - **部署与运维** #### 详细知识点解析 ##### Rails 3.2概述 Rails 3.2是Ruby on Rails框架...
在Rails中,你可以使用`rails generate`命令快速生成模型、控制器、迁移等。例如,创建一个名为`User`的模型: ```bash rails generate model User name:string email:string ``` 运行数据库迁移以更新数据库结构...
在Rails中,MVC架构起着核心作用。Model负责数据逻辑,View负责展示,Controller处理请求并协调Model和View。例如,要创建一个名为`Post`的模型,可以运行: ``` rails generate model Post title:string content:...
- 安全传输:强调了HTTPS的重要性,以及如何在Rails应用中配置SSL/TLS证书,确保数据在客户端与服务器之间的传输过程中的安全性。 4. **安全编码实践** - 输入验证:教导开发者如何对用户输入进行严格的验证和...
在Rails部署过程中,有以下几个关键知识点: 1. **环境准备**:首先,你需要一个运行Rails应用的服务器。这可以是云服务提供商(如AWS、Google Cloud或Heroku)上的虚拟机,或者自己的硬件。确保服务器操作系统是...
综上所述,这个主题涵盖了Web安全的基础知识,包括SSL/TLS协议的应用、HTTPS与HTTP的混合使用,以及如何在Rails应用中使用Devise实现安全的会话管理。理解并正确实施这些策略对于任何开发安全Web服务的人员来说都是...
《Enterprise Rails》是一本专注于企业级Rails应用开发的书籍,主要面向有经验的Ruby on Rails开发者,探讨如何在大型、复杂的企业环境中有效地运用这一强大的Web框架。2009年的出版时间点,正处于Rails框架逐渐成熟...
该gem是使用其免费的基于SNI的SSL和LetsEncrypt在Heroku上保护Ruby on Rails应用程序的完整解决方案。 它会自动处理续订并保持您的证书最新。 通过一些额外的步骤,该宝石也可以与Sinatra一起使用。 有关如何执行...
在这个`net-dns-0.1.zip`压缩包中,包含了`Rails`应用中使用`net-dns`库来处理DNS相关功能的源代码。 `net-dns`库提供了许多功能,包括但不限于: 1. **DNS查询**:你可以使用`net-dns`发送不同类型的DNS查询,如A...
《Pragmatic Security on Rails》是一本专注于Rails框架下的安全实践的书籍,其核心内容是指导开发者如何在Ruby on Rails环境中构建安全、可靠的Web应用程序。Rails的安全性是开发者必须重视的关键议题,因为任何...
通过阅读《再次发一本部署rails的书》,开发者可以系统学习Rails应用部署的全貌,从而避免在实际操作中遇到的问题,提高部署效率,确保Rails应用在生产环境中稳定运行。同时,书中提供的链接——,可能提供了更多...
基于这些信息,我们将深入探讨Ruby on Rails框架的依赖结构,并解释每个依赖库的功能及其在Rails架构中的作用。 ### Ruby on Rails 依赖的目录树 #### 安装过程概览 在给定的部分内容中,我们看到一系列命令被...
本篇文章将详细探讨如何使用Ansible部署一个基于Ruby on Rails的应用,该应用集成了Lets Encrypt(用于SSL证书)、Sidekiq(后台任务处理)、PostgreSQL(数据库服务)、nginx(反向代理)和puma(Web服务器)。...
4. **SEO优化**:Publify提供了丰富的SEO工具,包括自定义元标签、URL重写等,有助于提高网站在搜索引擎中的可见性。 5. **社交媒体集成**:集成Twitter、Facebook等社交网络,方便分享文章和跟踪反馈。 6. **评论...
在 Windows 7 环境下搭建 Rails 3 开发环境是一项颇具挑战性的任务,尤其是当涉及到 Cygwin、Ruby、Rails 以及一系列其他必要的组件时。本文将详细阐述如何在 Windows 7 系统上利用 Cygwin 进行环境搭建,包括 Git、...