diff --git a/core/src/main/java/org/apache/shiro/env/BasicIniEnvironment.java b/core/src/main/java/org/apache/shiro/env/BasicIniEnvironment.java
new file mode 100644
index 0000000..6eacbb9
--- /dev/null
+++ b/core/src/main/java/org/apache/shiro/env/BasicIniEnvironment.java
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ */
+package org.apache.shiro.env;
+
+import org.apache.shiro.config.Ini;
+import org.apache.shiro.config.IniSecurityManagerFactory;
+import org.apache.shiro.mgt.SecurityManager;
+
+/**
+ * Basic usage:<p>
+ * <code>
+ * Environment env = new BasicIniEnvironment("classpath:shiro.ini");
+ * SecurityManager securityManager = env.getSecurityManager();
+ * </code>
+ *
+ * @since 1.5
+ */
+public class BasicIniEnvironment extends DefaultEnvironment {
+
+    public BasicIniEnvironment(Ini ini) {
+        setSecurityManager(new IniSecurityManagerFactory(ini).getInstance());
+    }
+
+    public BasicIniEnvironment(String iniResourcePath) {
+        this(Ini.fromResourcePath(iniResourcePath));
+    }
+}
